5#ifndef TRKEXTOOLS_LOCALEXCACHE_H
6#define TRKEXTOOLS_LOCALEXCACHE_H
39 using DestSurf = std::pair<const Surface*, BoundaryCheck>;
79 std::vector<const Trk::TrackStateOnSurface*>*
m_matstates =
nullptr;
91 std::vector<std::pair<const Trk::DetachedTrackingVolume*, unsigned int>>
m_detachedVols{};
92 std::vector<std::pair<const Trk::TrackingVolume*, unsigned int>>
m_denseVols{};
93 std::vector<std::pair<const Trk::TrackingVolume*, const Trk::Layer*>>
m_navigLays{};
94 std::vector<std::pair<const Trk::Surface*, Trk::BoundaryCheck>>
m_navigSurfs{};
95 std::vector<const Trk::DetachedTrackingVolume*>
m_navigVols{};
96 std::vector<std::pair<const Trk::TrackingVolume*, unsigned int>>
m_navigVolsInt{};
108 Cache(
const std::vector<const IMaterialEffectsUpdator*> & updaters);
111 const EventContext& ctx) {
This class describes energy loss material effects in the ATLAS tracking EDM.
Cache class to allow passing information to/between calls.
Interface class for the navigation AlgTool, it inherits from IAlgTool Detailed information about priv...
virtual const TrackingGeometry * trackingGeometry(const EventContext &ctx) const =0
INavigator interface method - returns the TrackingGeometry used for navigation.
Base Class for a Detector Layer in the Tracking realm.
Abstract Base Class for tracking surfaces.
represents the track state (measurement, material, fit parameters and quality) at a surface.
The TrackingGeometry class is the owner of the constructed TrackingVolumes.
Full Volume description used in Tracking, it inherits from Volume to get the geometrical structure,...
Base class for all volumes inside the tracking realm, it defines the interface for inherited Volume c...
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
ParametersBase< TrackParametersDim, Charged > TrackParameters
std::atomic< unsigned int > m_maxMethodSequence
std::atomic< unsigned int > m_maxRecursionCount
std::atomic< unsigned int > m_maxPropagations
const Surface * m_destinationSurface
the boundary volume check
Cache(Dbg::PropStat &stat)
const Layer * m_lastMaterialLayer
cache for collecting the total X0 ans Eloss
IMaterialEffectsUpdator::ICache & subMaterialEffectsUpdatorCache()
std::string elossPointerErrorMsg(int lineNumber=0) const
String error message if the cache has a problem.
const Volume * m_boundaryVolume
Destination Surface for recall.
const Trk::EnergyLoss * m_cacheEloss
cache of TrackStateOnSurfaces
void retrieveBoundaries()
Retrieve boundaries.
std::vector< std::unique_ptr< Trk::TrackParameters > > TrackParametersUVector
const Trk::TrackingVolume * volume(const EventContext &, const Amg::Vector3D &gp) const
void setRecallInformation(const Surface &, const Layer &, const TrackingVolume &)
Private method for setting recall Information.
bool elossPointerOverwritten() const
Check cache integrity.
std::vector< std::pair< const Trk::Surface *, Trk::BoundaryCheck > > m_navigSurfs
std::array< unsigned short, kNRecursionValues > m_recursionCount
const TrackingVolume * m_recallTrackingVolume
std::pair< const Surface *, BoundaryCheck > DestSurf
The class holding the unique ptr during the extrapolation loop.
const Layer * m_recallLayer
Destination TrackingVolume for recall.
std::vector< const Trk::DetachedTrackingVolume * > m_navigVols
std::pair< unsigned int, unsigned int > m_denseResolved
double m_path
Pointer (not owning) pointing.
std::vector< Trk::IMaterialEffectsUpdator::ICache > m_MaterialUpCache
internal switch for resolved configuration
unsigned int m_layerResolved
void addOneNavigationLayer(const Trk::TrackingVolume *pDetVol, const Trk::Layer *pLayer, bool boundaryCheck=true)
Add one layer and navigLayer.
std::vector< std::pair< std::unique_ptr< Trk::TrackParameters >, int > > identifiedParameters_t
Dbg::PropStat * m_statPtr
std::vector< DestSurf > m_detachedBoundaries
void populateMatEffUpdatorCache(const std::vector< const IMaterialEffectsUpdator * > &updaters)
std::vector< std::pair< const Trk::TrackingVolume *, const Trk::Layer * > > m_navigLays
unsigned int m_nPropagations
@ kRecursionCountExceeded
const Surface * m_recallSurface
Destination Layer for recall.
std::vector< DestSurf > m_staticBoundaries
const Trk::TrackingVolume * m_highestVolume
Trk::ExtrUniquePtrHolder< Trk::TrackParameters > m_ownedPtrs
parameters to be used for final propagation in case of fallback
Trk::TrackParameters * m_lastValidParameters
return helper for parameters and boundary
std::vector< std::pair< const Trk::TrackingVolume *, unsigned int > > m_navigVolsInt
std::vector< const Trk::TrackStateOnSurface * > * m_matstates
void setTrackingGeometry(const Trk::INavigator &navigator, const EventContext &ctx)
void resetRecallInformation()
std::vector< std::pair< const Trk::DetachedTrackingVolume *, unsigned int > > m_detachedVols
std::string to_string(const std::string &txt) const
String representation of cache.
std::vector< std::pair< const Trk::TrackingVolume *, unsigned int > > m_denseVols
std::vector< DestSurf > m_navigBoundaries
const Trk::TrackingGeometry * m_trackingGeometry
std::unique_ptr< identifiedParameters_t > m_identifiedParameters
enum Trk::Cache::EStatus m_status
void copyToNavigationSurfaces()
Insert navigation surfaces from layers, dense boundaries, navig boundaries and detached boundaries.
Trk::ExtrapolationCache * m_extrapolationCache
cache pointer for Eloss
ParametersNextVolume m_parametersAtBoundary
Caches per MaterialUpdator.
const Trk::TrackingVolume * m_currentStatic
const Trk::TrackingVolume * m_currentDense
std::vector< DestSurf > m_layers
TrackParametersUVector * m_parametersOnDetElements
cache layer with last material update
unsigned int m_methodSequence
std::vector< DestSurf > m_denseBoundaries