The REC Project

REC v22r1

Release Notes

2017-10-17 RecSys v22r1

This version uses Gaudi v29r0, LHCb v43r1 and Lbcom v21r1 (and LCG_91 with ROOT 6.10.06)

This version is released on master branch. The previous release on master branch was Rec v22r0. This release contains all the changes that were made in Rec v21r6 and Rec v21r6p1 (released on 2017-patches branch, see corresponding release notes), as well as the additional changes described in this file.

Change to compiler support

As from this release, support for gcc7 is added
Note that C++17 is not yet fully supported, waiting for support from ROOT

[MR !731] Fix gcc7 buffer overflow warning

[MR !729] Fix gcc7 initialisation warning in MuonTrackAlign

[MR !719] ChargedProtoANNPID - gcc7 Warning Suppression + Merge yPID libs into one

[MR !714] Fix support for CPU dispatching with GCC7 on older CPUs that do not support AVX.
Follows LHCb!848.

[MR !709] Fix gcc7 compilation error in DefaultVeloHitManager.h

[MR !710] ChargedProtoANNPID - Fix json.hpp for gcc7

[MR !708] Suppress compilation warnings from Boost headers

Packaging changes

[MR !760] Remove use of the temporary Kernel/TemplatedGenVector LHCb package

Changes to configuration

[MR !766] Change default pA/AA GEC cut from 80k to 20k Velo clusters

Code optimisations

[MR !607] Disable boost pool allocators

Bug fixes and cleanups

[MR !696] Fix Calo counter names broken by MR !627

[MR !659] Fixed track checking in VeloIPResolutionMonitor
In case an empty set of tracks was found in the TES, the message reporting that no tracks were there was not displayed.

[MR !763] Fix untested StatusCodes uncovered by gaudi/Gaudi!386

Monitoring changes

[MR !747] Add additional variables to VPTrackMonitor

Code modernisations

[MR !730] Minor fixes to PrPixelModule
- Direct member initialisation (also fixes uninitialised variable warning from gcc7)
- Remove empty destructor
- Make the class final

[MR !723] Follow modernization of TrackEvent (LHCb!858)
- TrackFunctor functors no longer require a template argument to instantiate them
- make internal VertexTrack final
- use boost::optional instead of std::pair<bool,T>
- prefer STL algorithms over raw loops
- prefer direct member initialization
- fully qualify enums

[MR !718] Follow CaloHypo change in LHCb!852, plus some modernization
- update calls to CaloHypo::setPosition, following lhcb/LHCb!852
- remove unnecessary #include
- prefer auto
- avoid repeated searches in maps
- prefer range-based for loops
- avoid heap storage if stack will do
- replace std::auto_ptr with std::unique_ptr

[MR !720] Change from class to struct in IMuonRawBuffer. Follows MR LHCb!847

[MR !690] Inline functions in TMVA for PatLLT, add debug statement to TrackAssociator

[MR !670] Modernize TrackMonitors
- replace BOOST_FOREACH with range-based for loops
- replace boost::assign with (implicit) std::initializer_list
- remove unused headers
- prefer auto
- avoid repeated calculations of chi2().prob()

[MR !671] Modernize TrackIdealPR
- remove explicit trivial destructors
- prefer (implicit) std::initializer_list over boost::assign
- make static map const
- remove unused headers

[MR !672] Modernize TrackCheckers - remove unused headers
- replace BOOST_FOREACH with ranger-based for loops
- prefer Gaudi::Property
- prefer inherited constructors
- prefer implicit destructors over explicit trivial ones
- make static maps const
- prefer auto
- replace repetitive code with a lambda

[MR !681] TrackRungeKuttaExtrapolator: Implement both toStream and toString instead of just toStream

[MR !673] Modernize VeloRecMonitors
- remove unused headers
- prefer STL algorithms over raw loops
- replace BOOST_FOREACH with range-based for loops
- prefer lambdas over bind

[MR !663] Adapt to strict TrajPoca interface
Follows LHCb!785

[MR !716] Modernize VeloClusterPosition
- Prefer implicit compiler generated destructors
- Prefer inherited constructors
- Prefer boost::optional over std::unique_ptr
- Prefer Gaudi::Property over Gaudi::Property
- Qualify VeloClusterPosition as final
- Remove unneccesary finalize implementation

Changes to tests and documentation

[MR !711] RichFuture examples update.

[MR !679] Update test reference to match LHCb!795

[v22r0.md] Fix bug in dependencies documentation

Package Versions

Calo/CaloMoniDstdocRec/RecInterfacesdocTf/PatKerneldict
Calo/CaloMoniDstpythonRec/RecInterfacesdictTf/PatKernelsrc
Calo/CaloMoniDstoptionsRec/RecInterfacesRecInterfacesTf/PatKerneldoc
Calo/CaloMoniDstsrcRec/RecInterfacesCMakeLists.txtTf/PatKernelCMakeLists.txt
Calo/CaloMoniDstCMakeLists.txtRecSysdocTf/PatVelosrc
Calo/CaloPIDsdocRecSysCMakeLists.txtTf/PatVelodoc
Calo/CaloPIDspythonReleaseNotesv22r0.mdTf/PatVeloCMakeLists.txt
Calo/CaloPIDssrcReleaseNotesv21r6.mdTf/PatVeloTTdoc
Calo/CaloPIDsCMakeLists.txtReleaseNotesv21r6p1.mdTf/PatVeloTToptions
Calo/CaloRecodocReleaseNotesv21r5.mdTf/PatVeloTTpython
Calo/CaloRecopythonReleaseNotesv22r1.mdTf/PatVeloTTsrc
Calo/CaloRecooptionsRich/RichAlignmentdocTf/PatVeloTTCMakeLists.txt
Calo/CaloRecosrcRich/RichAlignmentpythonTf/TfKerneldoc
Calo/CaloRecoCMakeLists.txtRich/RichAlignmentsrcTf/TfKernelTfKernel
Calo/CaloToolssrcRich/RichAlignmentscriptsTf/TfKerneldict
Calo/CaloToolsdocRich/RichAlignmentCMakeLists.txtTf/TfKernelCMakeLists.txt
Calo/CaloToolsCMakeLists.txtRich/RichENNRingFindersrcTf/TfToolsdoc
Hlt/HltMonitorsdocRich/RichENNRingFinderpythonTf/TfToolssrc
Hlt/HltMonitorssrcRich/RichENNRingFinderdocTf/TfToolsCMakeLists.txt
Hlt/HltMonitorspythonRich/RichENNRingFinderCMakeLists.txtTf/TrackSyspython
Hlt/HltMonitorsCMakeLists.txtRich/RichGlobalPIDRichGlobalPIDTf/TrackSysoptions
Muon/MuonIDpythonRich/RichGlobalPIDsrcTf/TrackSysdoc
Muon/MuonIDdictRich/RichGlobalPIDmathematicaTf/TrackSysCMakeLists.txt
Muon/MuonIDsrcRich/RichGlobalPIDxmlTf/TsaAlgorithmspython
Muon/MuonIDdocRich/RichGlobalPIDoptionsTf/TsaAlgorithmssrc
Muon/MuonIDMuonIDRich/RichGlobalPIDdocTf/TsaAlgorithmsdoc
Muon/MuonIDCMakeLists.txtRich/RichGlobalPIDCMakeLists.txtTf/TsaAlgorithmsCMakeLists.txt
Muon/MuonInterfacesdictRich/RichHPDImageAnalysisdictTf/TsaKerneldoc
Muon/MuonInterfacesdocRich/RichHPDImageAnalysisdocTf/TsaKernelTsaKernel
Muon/MuonInterfacessrcRich/RichHPDImageAnalysispythonTf/TsaKerneldict
Muon/MuonInterfacesMuonInterfacesRich/RichHPDImageAnalysissrcTf/TsaKernelsrc
Muon/MuonInterfacesCMakeLists.txtRich/RichHPDImageAnalysisRichHPDImageAnalysisTf/TsaKernelCMakeLists.txt
Muon/MuonPIDCheckerpythonRich/RichHPDImageAnalysisCMakeLists.txtTr/PatCheckersrc
Muon/MuonPIDCheckerdocRich/RichIFBAnalysissrcTr/PatCheckerdoc
Muon/MuonPIDCheckersrcRich/RichIFBAnalysisdocTr/PatCheckerCMakeLists.txt
Muon/MuonPIDCheckerCMakeLists.txtRich/RichIFBAnalysisCMakeLists.txtTr/PatFitParamssrc
Muon/MuonToolssrcRich/RichPIDMergesrcTr/PatFitParamsdoc
Muon/MuonToolsdocRich/RichPIDMergedocTr/PatFitParamsoptions
Muon/MuonToolsCMakeLists.txtRich/RichPIDMergeCMakeLists.txtTr/PatFitParamsCMakeLists.txt
Muon/MuonTrackAlignoptionsRich/RichParticleSearchpythonTr/PatPVsrc
Muon/MuonTrackAligndocRich/RichParticleSearchdocTr/PatPVoptions
Muon/MuonTrackAlignsrcRich/RichParticleSearchDebugTr/PatPVpython
Muon/MuonTrackAlignCMakeLists.txtRich/RichParticleSearchmacrosTr/PatPVdoc
Muon/MuonTrackMonitordocRich/RichParticleSearchoptionsTr/PatPVCMakeLists.txt
Muon/MuonTrackMonitorpythonRich/RichParticleSearch.cprojectTr/TrackAssociatorssrc
Muon/MuonTrackMonitorsrcRich/RichParticleSearchsrcTr/TrackAssociatorsdoc
Muon/MuonTrackMonitorCMakeLists.txtRich/RichParticleSearchCMakeLists.txtTr/TrackAssociatorsCMakeLists.txt
Muon/MuonTrackRecoptionsRich/RichParticleSearch.projectTr/TrackCheckersdoc
Muon/MuonTrackRecsrcRich/RichRecAlgorithmsdocTr/TrackCheckersoptions
Muon/MuonTrackRecdocRich/RichRecAlgorithmssrcTr/TrackCheckerssrc
Muon/MuonTrackRecCMakeLists.txtRich/RichRecAlgorithmsCMakeLists.txtTr/TrackCheckersroot
Pr/PrAlgorithmssrcRich/RichRecBasedictTr/TrackCheckersCMakeLists.txt
Pr/PrAlgorithmsdocRich/RichRecBasesrcTr/TrackExtrapolatorssrc
Pr/PrAlgorithmsCMakeLists.txtRich/RichRecBasedocTr/TrackExtrapolatorsdoc
Pr/PrFitParamssrcRich/RichRecBaseRichRecBaseTr/TrackExtrapolatorsCMakeLists.txt
Pr/PrFitParamsoptionsRich/RichRecBaseCMakeLists.txtTr/TrackFitEventEvent
Pr/PrFitParamsdocRich/RichRecMCAlgorithmssrcTr/TrackFitEventdoc
Pr/PrFitParamsCMakeLists.txtRich/RichRecMCAlgorithmsdocTr/TrackFitEventxml
Pr/PrKernelPrKernelRich/RichRecMCAlgorithmsCMakeLists.txtTr/TrackFitEventsrc
Pr/PrKerneldictRich/RichRecMCToolsdocTr/TrackFitEventCMakeLists.txt
Pr/PrKernelsrcRich/RichRecMCToolssrcTr/TrackFittersrc
Pr/PrKerneldocRich/RichRecMCToolsCMakeLists.txtTr/TrackFitterdoc
Pr/PrKernelCMakeLists.txtRich/RichRecMonitorssrcTr/TrackFitterpython
Pr/PrMCToolssrcRich/RichRecMonitorsdocTr/TrackFitterCMakeLists.txt
Pr/PrMCToolsdocRich/RichRecMonitorsCMakeLists.txtTr/TrackIdealPRdoc
Pr/PrMCToolsCMakeLists.txtRich/RichRecPhotonToolssrcTr/TrackIdealPRsrc
Pr/PrPixelsrcRich/RichRecPhotonToolsdocTr/TrackIdealPRoptions
Pr/PrPixeldocRich/RichRecPhotonToolsCMakeLists.txtTr/TrackIdealPRCMakeLists.txt
Pr/PrPixelCMakeLists.txtRich/RichRecQCrootTr/TrackInterfacesTrackInterfaces
Pr/PrUtilssrcRich/RichRecQCsrcTr/TrackInterfacesdict
Pr/PrUtilsdocRich/RichRecQCpythonTr/TrackInterfacesdoc
Pr/PrUtilsCMakeLists.txtRich/RichRecQCdocTr/TrackInterfacesCMakeLists.txt
Pr/PrVeloUTdocRich/RichRecQCCMakeLists.txtTr/TrackKernelsrc
Pr/PrVeloUTsrcRich/RichRecStereoToolsdocTr/TrackKernelTrackKernel
Pr/PrVeloUTCMakeLists.txtRich/RichRecStereoToolssrcTr/TrackKerneldoc
Rec/ChargedProtoANNPIDdataRich/RichRecStereoToolsCMakeLists.txtTr/TrackKernelCMakeLists.txt
Rec/ChargedProtoANNPIDjobRich/RichRecSyspythonTr/TrackMCToolssrc
Rec/ChargedProtoANNPIDdocRich/RichRecSysdocTr/TrackMCToolsdoc
Rec/ChargedProtoANNPIDsrcRich/RichRecSysCMakeLists.txtTr/TrackMCToolsCMakeLists.txt
Rec/ChargedProtoANNPIDpythonRich/RichRecTemplateRingsdocTr/TrackMonitorsoptions
Rec/ChargedProtoANNPIDCMakeLists.txtRich/RichRecTemplateRingssrcTr/TrackMonitorssrc
Rec/GlobalRecorootRich/RichRecTemplateRingspythonTr/TrackMonitorspython
Rec/GlobalRecotestsRich/RichRecTemplateRingsCMakeLists.txtTr/TrackMonitorsdoc
Rec/GlobalRecodocRich/RichRecToolssrcTr/TrackMonitorsCMakeLists.txt
Rec/GlobalRecopythonRich/RichRecToolsdocTr/TrackProjectorsdoc
Rec/GlobalRecosrcRich/RichRecToolsCMakeLists.txtTr/TrackProjectorssrc
Rec/GlobalRecoCMakeLists.txtRich/RichRecTrackToolssrcTr/TrackProjectorsCMakeLists.txt
Rec/LumiAlgsjobRich/RichRecTrackToolsdocTr/TrackToolsdoc
Rec/LumiAlgsdocRich/RichRecTrackToolsCMakeLists.txtTr/TrackToolssrc
Rec/LumiAlgstestsTf/FastPVsrcTr/TrackToolsCMakeLists.txt
Rec/LumiAlgssrcTf/FastPVdocTr/TrackToolspython
Rec/LumiAlgsoptionsTf/FastPVCMakeLists.txtTr/TrackUtilsdoc
Rec/LumiAlgspythonTf/FastVelodocTr/TrackUtilsoptions
Rec/LumiAlgsLumiAlgsTf/FastVelopythonTr/TrackUtilssrc
Rec/LumiAlgsdictTf/FastVelosrcTr/TrackUtilsCMakeLists.txt
Rec/LumiAlgsCMakeLists.txtTf/FastVeloCMakeLists.txtVelo/VeloRecMonitorspython
Rec/RecAlgssrcTf/PatAlgorithmsdocVelo/VeloRecMonitorsdoc
Rec/RecAlgsdocTf/PatAlgorithmspythonVelo/VeloRecMonitorssrc
Rec/RecAlgsCMakeLists.txtTf/PatAlgorithmsoptionsVelo/VeloRecMonitorsoptions
Rec/RecConfpythonTf/PatAlgorithmssrcVelo/VeloRecMonitorsCMakeLists.txt
Rec/RecConfdocTf/PatAlgorithmsCMakeLists.txt
Rec/RecConfCMakeLists.txtTf/PatKernelPatKernel