 |
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef TRKEXTOOLS_LOCALEXCACHE_H
6 #define TRKEXTOOLS_LOCALEXCACHE_H
20 class ExtrapolationCache;
22 class TrackStateOnSurface;
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) {
IMaterialEffectsUpdator::ICache & subMaterialEffectsUpdatorCache()
std::vector< DestSurf > m_detachedBoundaries
std::vector< std::pair< const Trk::TrackingVolume *, unsigned int > > m_denseVols
Cache(Dbg::PropStat &stat)
Trk::ExtrUniquePtrHolder< Trk::TrackParameters > m_ownedPtrs
parameters to be used for final propagation in case of fallback
std::vector< std::pair< const Trk::DetachedTrackingVolume *, unsigned int > > m_detachedVols
Cache class to allow passing information to/between calls.
Trk::TrackParameters * m_lastValidParameters
return helper for parameters and boundary
std::vector< Trk::IMaterialEffectsUpdator::ICache > m_MaterialUpCache
internal switch for resolved configuration
Trk::ExtrapolationCache * m_extrapolationCache
cache pointer for Eloss
std::vector< DestSurf > m_navigBoundaries
const TrackingVolume * m_recallTrackingVolume
std::vector< DestSurf > m_layers
void populateMatEffUpdatorCache(const std::vector< const IMaterialEffectsUpdator * > &updaters)
TrackParametersUVector * m_parametersOnDetElements
cache layer with last material update
std::vector< std::pair< const Trk::TrackingVolume *, const Trk::Layer * > > m_navigLays
void setRecallInformation(const Surface &, const Layer &, const TrackingVolume &)
Private method for setting recall Information.
void retrieveBoundaries()
Retrieve boundaries.
void resetRecallInformation()
double m_path
Pointer (not owning) pointing.
std::atomic< unsigned int > m_maxRecursionCount
std::vector< std::pair< std::unique_ptr< Trk::TrackParameters >, int > > identifiedParameters_t
void addOneNavigationLayer(const Trk::TrackingVolume *pDetVol, const Trk::Layer *pLayer, bool boundaryCheck=true)
Add one layer and navigLayer.
@ kRecursionCountExceeded
virtual const TrackingGeometry * trackingGeometry(const EventContext &ctx) const =0
INavigator interface method - returns the TrackingGeometry used for navigation.
const Volume * m_boundaryVolume
Destination Surface for recall.
unsigned int m_layerResolved
Dbg::PropStat * m_statPtr
std::vector< const Trk::TrackStateOnSurface * > * m_matstates
std::pair< unsigned int, unsigned int > m_denseResolved
std::vector< std::pair< const Trk::Surface *, Trk::BoundaryCheck > > m_navigSurfs
const Trk::TrackingVolume * m_highestVolume
std::vector< DestSurf > m_staticBoundaries
std::vector< DestSurf > m_denseBoundaries
const Surface * m_recallSurface
Destination Layer for recall.
const Trk::TrackingVolume * m_currentDense
const Trk::TrackingGeometry * m_trackingGeometry
std::array< unsigned short, kNRecursionValues > m_recursionCount
std::atomic< unsigned int > m_maxMethodSequence
const Layer * m_recallLayer
Destination TrackingVolume for recall.
std::string elossPointerErrorMsg(int lineNumber=0) const
String error message if the cache has a problem.
const Surface * m_destinationSurface
the boundary volume check
Ensure that the ATLAS eigen extensions are properly loaded.
std::pair< const Surface *, BoundaryCheck > DestSurf
The class holding the unique ptr during the extrapolation loop.
This class describes energy loss material effects in the ATLAS tracking EDM.
Eigen::Matrix< double, 3, 1 > Vector3D
unsigned int m_methodSequence
std::vector< std::unique_ptr< Trk::TrackParameters > > TrackParametersUVector
bool elossPointerOverwritten() const
Check cache integrity.
const TrackingVolume * lowestTrackingVolume(const Amg::Vector3D &gp) const
return the lowest tracking Volume
std::vector< const Trk::DetachedTrackingVolume * > m_navigVols
std::string to_string(const std::string &txt) const
String representation of cache.
void copyToNavigationSurfaces()
Insert navigation surfaces from layers, dense boundaries, navig boundaries and detached boundaries.
std::vector< std::pair< const Trk::TrackingVolume *, unsigned int > > m_navigVolsInt
std::atomic< unsigned int > m_maxPropagations
const Trk::TrackingVolume * volume(const EventContext &, const Amg::Vector3D &gp) const
const Trk::EnergyLoss * m_cacheEloss
cache of TrackStateOnSurfaces
const Layer * m_lastMaterialLayer
cache for collecting the total X0 ans Eloss
enum Trk::Cache::EStatus m_status
const Trk::TrackingVolume * m_currentStatic
ParametersNextVolume m_parametersAtBoundary
Caches per MaterialUpdator.
std::unique_ptr< identifiedParameters_t > m_identifiedParameters
void setTrackingGeometry(const Trk::INavigator &navigator, const EventContext &ctx)
unsigned int m_nPropagations