Use propagation without geometry access when possible
The TrackMasterExtrapolator
accesses the geometry if it is called with a LHCb::State
, but not when it is called with a LHCb::StateVector
. Given that geometry accesses are expensive and the SimplifiedGeometry is not available with DD4Hep (for now), make sure the State
method is only used if the uncertainty / covariance is actually needed.
A quick search reveals the use with a LHCb::State
in (only listing the non-monitoring / checking algorithms / tools, and the list is not exhaustive):
- https://gitlab.cern.ch/lhcb/Rec/-/blob/master/Calo/CaloTools/src/Track2Calo.cpp
- https://gitlab.cern.ch/lhcb/Rec/-/blob/master/CaloFuture/CaloFuturePIDs/src/CaloFutureTrackTool.cpp
- https://gitlab.cern.ch/lhcb/Rec/-/blob/master/CaloFuture/CaloFutureTools/src/CaloFutureElectron.cpp
- https://gitlab.cern.ch/lhcb/Rec/-/blob/master/Phys/DaVinciNeutralTools/src/FunctionalBremAdder.cpp
- https://gitlab.cern.ch/lhcb/Rec/-/blob/master/Rich/RichFutureRecTrackAlgorithms/src/RichDetailedTrSegMakerFromTracks.cpp
- https://gitlab.cern.ch/lhcb/Rec/-/blob/master/Tr/TrackTools/src/MuonSeeding.cpp
- https://gitlab.cern.ch/lhcb/Rec/-/blob/master/Tr/TrackTools/src/MuonUTTracking.cpp
- https://gitlab.cern.ch/lhcb/Rec/-/blob/master/Phys/DaVinciTransporter/src/ParticleTransporter.cpp
- https://gitlab.cern.ch/lhcb/Rec/-/blob/master/Phys/DaVinciTransporter/src/ParticleTransporterWithStateProvider.cpp
- https://gitlab.cern.ch/lhcb/Rec/-/blob/master/Phys/LoKiFitters/src/DistanceCalculator.h
- https://gitlab.cern.ch/lhcb/Rec/-/blob/master/Tr/TrackExtrapolators/src/TrackStateProvider.cpp