2018-12-07 Rec v30r2
This version uses Lbcom v30r2, LHCb v50r2, Gaudi v30r5 and LCG_94 with ROOT 6.14.04
This version is released on `master` branch.
Built relative to Rec v30r1, with the following changes:
New features
-
Loki for Track v2, !1285 (@sstahl)
Add a small set of LoKi functors using Track v2 needed for making more realistic selections. -
Add copyright statements, !1247 (@clemenci) [LBCORE-1619]
-
PrForwardTool: add momentum guided search window, !1239 (@jihu)
- Turn it on with
PrForwardTool().UseMomentumGuidedSearchWindow = True
(defaultFalse
) - PrVeloUT: add a fitter with Y offset correction
To turn it with
PrVeloUT().FinalFit = True
(defaultFalse
) - TrackSys: add switch
UseMomentumGuidedSearchWindow
in theConfigHLT1
field. If turned on, it will set bothPrForwardTool().UseMomentumGuidedSearchWindow
andPrVeloUT().FinalFit
to be true in the fast stage tracking.
- Turn it on with
-
Dump banks, hits and geometry to binary files, !1177 (@raaij), !1229, !1267 (@dovombru), !1274 (@graven), !1288 (@freiss)
Code to dump VP banks, UT banks, UT hits, UT geometry, FT hits, MuonCoords, MuonCommonHits and track MC info to a binary file format or ROOT files for consumption by the standalone GPU application. -
Add package CaloFuture, !1209 (@jmarchan)
New CaloFuture package to be used for upgrade
Enhancements
-
Making PatPV3D a Transformer instead of MulitTransformerFilter, !1325, (@chasse)
-
ParameterizedKalman: Access qOverP directly, !1292 (@pseyfert)
-
Improve PatAlgorithms vectorization support, !1278 (@graven)
-
Use Property constructor which accepts updateHandler, !1275 (@graven)
-
Port CaloFutureShowerOverlap to new framework, !1273, !1293, !1304, !1313 (@cmarinbe)
-
Avoid implicit float to double conversion in PrPixel package, !1322 (@chasse)
-
Prevent PrForwardTracking from using fake qoverP, !1252 (@jihu)
When the input tracks are from PrPixelTracking, or you don't want to use momentum estimate from input tracks, setPrForwardTool().UseMomentumEstimate = False
-
Add a default q/p to the PrPixel track states, !1246 (@cattanem)
Implements a default q/p in PrPixel track states, as was done in Run1/2 for Velo tracks, to avoid NaNs due to infinite momentum. See discussions in LHCb!1553 and Brunel!540.
Enabled by default, can be switched off withPrPixelTracking().AddQoverP = false
. Default pT can be changed withPrPixelTracking().ptVelo
, default is 400 MeV. -
Port CaloEnergyForTrack to new framework and remove PRS/SPD related classes in CaloPIDs, !1243 (@zhxu)
-
Changes for calorimeters RawBank access, !1303 (@jmarchan)
Addition of CaloFutureRawToDigits and removal of old code, related to LHCb!1629 -
Updated the beam hole in PrHybridSeeding, !1237 (@lohenry)
The PrHybridSeeding has a possibility (True by default) to remove by hand the beam hole in the search for (u,v) hits. This cut was implemented when that hole was circular. This MR proposes new options to change the beam hole size and shape.
RemoveHole
has been left to True by default. -
Add new input types to ChargedProtoANNPID to provide information on (x,y,z) positions at various positions along the track, !1232 (@jonrob)
-
Adapt pattern recognition to Track::v2 class, !1205, !1226 (@sstahl), !1296 (@sponce)
-
Support selections on contiguous containers (e.g. vector...), !1281 (@olupton)
-
Restore old performance for Velo tracking using Phi-Sorted hits, !1207 (@rquaglia)
Addresses #12 -
Only search for additional hits in X layers if there is actually an empty one, !1191 (@decianm)
-
Update TrackSys package to swallow main switchess for the HLT1 throughput and physics scenarios, !1188 (@rquaglia)
Allows to configure directly via a Dictionary the main configuration of the HLT1 reconstruction sequence. -
New paramKalman extrapolation through the magnet, !1178 (@sstemmle)
In addition, some other hard coded numbers are replaced by parameters and some small changes to other parametrizations were applied. Uses new parameters for FT6x2, see lhcb-datapkg/ParamFiles!15. -
add PrCheckEmpty FilterPredicate (end decision for the scheduler), !1170 (@nnolte)
Also added the possibility of a sharedobjectscontainer as input for the trackeventfitter (for the barrier) -
Optimized PrStoreFTHit by caching the DeFTMat objects, !1167 (@sponce)
-
Rec/LoKiTrack - change a way how LoKi-functors get the context, !1162 (@ibelyaev)
see LHCb!1441 -
Adapt to versioned Track and revert of changes in TDR track, !1148 (@sstahl)
-
update Calo/CaloPIDs algorithms to the new Gaudi framework (charged PIDs only), !1133 (@zhxu)
-
RICH Set segment photon energies using parameters tool, !1111 (@jonrob)
-
Big improvements to MuonMatchVeloUT algorithm, !1033 (@mramospe)
-
Added support for VeloUTMuonMatch reco sequence in TrackSys, !1305 (@sponce)
-
Merge of TDR branch, aka code that would break master but is needed to run TDR tests, !826 (@sponce)
Thread safety
Bug fixes
-
Add fully qualified enum name needed by FunctorCache generation, !1334 (@cattanem)
-
Fix two memory leaks in ParameterizedKalman/src/CompareTracks.cpp, !1284 (@graven)
-
Fix untested StatusCodes in Muon Rec packages, !1308 (@cattanem)
-
Fixes to untested StatusCodes seen by Brunel tests, !1306 (@cattanem)
-
PatAlgorithms - Fix UB Sanitizer error in PatBBDTSeedClassifier, !1206 (@jonrob)
-
MuonChi2MatchTool: fix undefined behaviour due to number of regions, !1248 (@rvazquez)
-
PrVeloUT: small correction to straight line extrapolation formula, !1245 (@jihu)
-
TrackMonitors - Increase the size of some char buffers to avoid buffer overflows, !1228 (@jonrob)
-
ChargedProtoANNPID - Suppress json warnings, !1222 (@jonrob)
-
Add array index protection to avoid stack overflows, !1218 (@jonrob)
-
Fixed bug in PrHybridSeeding, !1210 (@sponce)
Stupid mistake leading to memory corruption and detected jointly by valgrind and the memory sanitizers in the nightlies. -
TrackBestTrackCreator: Add missing default inititalisation of
TrackData
members, !1208 (@jonrob) -
Fix bug for the bestScatter tolerance in Velo tracking, !1204 (@rquaglia)
-
Fixed bug in ForwardTracking leading to use of deleted memory, !1203 (@sponce)
-
Add a callback to CommonMuonTool, to update cached geometry when alignment changes, !1201 (@cattanem) [LHCBPS-1800]
Cherry-picked from !1154 onrun2-patches
-
Rich fix SIMD pixel summary ranges, !1194 (@jonrob)
Fixes a bug in the determination of the RICH SIMD pixel summary indices that occurs when no RICH1 bottom pixels are present. -
Add missing .size() inside an assert() to fix compilation of the debug builds, !1186 (@olupton)
-
Fix floating point exception in PrCounter2, !1173 (@chasse)
This protects the PrCounter2 against a floating point exception in the printing. -
Fix assert bug., !1172 (@raaij)
This assert does not make sense and seems to always fail in the debug builds. -
Fixes in TrackerDumper and PrLHCbID2MCParticle.cpp, !1171 (@dovombru)
Makes the TrackerDumper compatible with the latest changes. -
Fixed mistake in StatZTraj on horizontal_and, !1152 (@sponce)
Code modernisations and cleanups
-
Backward compatible changes required to decommision COOL, !1324 (@clemenci)
-
Port CaloFutureMergedPi0 algorithm to the Gaudi::Functional framework, !1283 (@dgolubko)
-
Streamline LoKiTrack, !1315 (@graven)
Simplify definition of unary functions -
Moved VectorSOAMatrixView header from the LHCb project to Rec, !1318 (@sponce)
-
Fix order of addition of converters to the sequence in TrackSys, !1316 (@sponce)
-
fix odr violations, !1277, !1289 (@graven)
Use constexpr and C++17 inline variables to fix violations of the One Definition Rule -
Prefer copy constructor over LHCb::State::clone, !1284 (@graven)
-
Use more direct way of obtaining the TES location of Calo hypos, !1312 (@graven)
-
Add TrMINIPCHI2 and TrMINIPCHI2CUT functors from Phys!455, !1307 (@olupton)
-
return std::optional instead of boost::optional in ScalarTransformer call operator, !1279 (@graven)
-
tweak TrackInterfaces, TrackTools, !1263 (@graven)
- use ToolHandle
- inherit from extend instead of base_class/GaudiTool
- prefer struct for interfaces
-
Modernize PatForward, !1262 (@graven)
- replace AUTO_RETURN macro with C++14 decltype(auto) return value deduction
- replace make_... functions with class template argument deduction
- replace plain owning pointers with std::unique_ptr
- use std::invoke to generically invoke callables
- pick SIMD vector size depending on AVX512F, AVX and SSE pre-processer flags
- use std::inner_product instead of explicitly writing out an unrolled inner product
- replace custom index_sequence implementation with std::index_sequence
-
Modernize PrGeometryTool / PrForwardTool, !1255 (@graven)
- make methods const
- prefer Gaudi::Property over declareProperty
- prefer std::array properties over std::vector properties
- remove unused properties
- use ToolHandles
- prefer free-standing functions in anonymous namespace over member functions
-
Remove obsolete RecSys/cmt/requirements and RecSys/CMakeLists.txt, !1250 (@cattanem)
-
Simplify vectorized code, !1244 (@graven)
By using generic lambdas instead of explicit templates -
PrCheckEmptyFilter.cpp: removed the info from execute(), and other minor changes, !1200 (@nnolte)
-
ChargedProtoANNPID - Disable instrumentation for some compilation units, !1199 (@jonrob)
-
Refactor UT code out of ST libraries, !1189 (@abeiter), !1235 (@sponce)
Classes updated to use new UT libraries in LHCb and Lbcom when handling UT code. -
Modernize PrVeloUT, PrUTMagnetTool, PrTableForFunction, !1185 (@graven)
- prefer std::clamp(x,y,z) over std::min(std::max(x,y),z),
- prefer constexpr
- prefer static functions
- prefer inherited constructor
- prefer template deduction guides
- prefer LHCb::span over std::array as function argument
- prefer std::array over C-style array
- static_assert over assert
-
Make PrVeloUT less dependendant on actual container types, !1180 (@graven)
-
IMuonMatchTool: remove data from interface, move to implementation, !1176 (@graven)
-
prefer template deduction guide over LHCb::make_array, !1174 (@graven)
-
Rich - C++17 improvements + clang formatting., !1160, !1181 (@jonrob)
-
use structured bindings in combination with zip, !1149 (@graven)
-
cleanup of some Trajectory using code, !1146 (@graven)
- include the correct header files
- remove old WIN32 specific #ifdef
- add
final
where appropriate - remove redundant destructor declarations
-
Adressed several comments summarized in issue #25, !1145 (@sponce)
-
Modernize PrLongLivedTracking, !1144 (@graven)
- add additional argument to Transformer instead of using an
explicit DataObjectReadHandle - prefer range-based for loops
- initialize member variables when they are declared
- move stand-alone struct into anonymous namespace
- fix one-time only memory leak by using std::unique_ptr
- avoid repeated push-back
- remove redundant inline qualifiers
- add additional argument to Transformer instead of using an
-
prefer std::string_view over boost::string_ref, !1143 (@graven)
-
Reduce the use of #ifdef in PrVeloUT, !1141 (@graven)
- instead, use templates and
if constexpr
- replace explicit
DataObjectReadhandle
with extraTransformer
argument - use std::optional instead of boost::optional
- instead, use templates and
-
Minimize the ICaloClusterization interface, !1137 (@graven)
Follow changes in LHCb!1431 -
prefer CaloCluster copy constructor over virtual clone, !1135 (@graven)
Monitoring changes
-
MuMonitor: Remove unnecessary get of HltDecReports, !1202 (@cattanem)
MuMonitor was retrievingHltDecReports
from the TES, even though it was not using them. This MR removes it, allowing MuMonitor to work also on data taken in HLT passthrough mode where the HltDecReports are absent. See discussion in Brunel!484 -
PrChecker histograms: plot negative eta range, !1251 (@dovombru)
For Velo track histograms of reconstructed and reconstructible tracks: plot the whole eta range: -7, 7 if no eta25 cut was specified. -
Convert SIMDRecoStats (Rich monitoring algorithm in Brunel) to use new Gaudi counters, !1220 (@jonrob)
-
Fix RecMoniConf to enable Monitoring of new Upgrade sub-detectors, !1249 (@cattanem)
-
Explicit electron checks and efficiency of first velo hits in PrChecker2/PrCounter2, !1140 (@chasse) [N-3]
Changes to tests
-
LumiAlgs - Disable virtual memory check under sanitizers, !1215 (@jonrob)
-
Fix test using the SQLite DDDB, broken by LHCb!1439, !1150 (@cattanem)
Cherry picked from !1147 onrun2-patches
-
Remove assert to fix tests in dbg mode, !1139 (@rvazquez)
Brunel tests in debug mode were failing due to the assert inCommonMuonStation.cpp
removed by this MR. See discussion in !1076.