ATLAS Offline Software
TimedExtrapolator.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // TimedExtrapolator.h, (c) ATLAS Detector software
8 
9 #ifndef TRKEXTOOLS_TIMEDEXTRAPOLATOR_H
10 #define TRKEXTOOLS_TIMEDEXTRAPOLATOR_H
11 
13 
16 
17 // Gaudi
19 #include "GaudiKernel/ToolHandle.h"
20 // Trk
30 // STL
31 #include <cstring>
32 #include <map>
33 #include <vector>
34 
35 // For marking not thread safety
37 class MsgStream;
38 
39 namespace Trk {
40 
41 class Track;
42 class Surface;
43 class Layer;
44 class Volume;
45 class DetachedTrackingVolume;
46 class AlignableTrackingVolume;
47 class TrackingGeometry;
48 class TrackParticleBase;
49 class IPropagator;
50 class IDynamicLayerCreator;
51 class INavigator;
52 class IMultipleScatteringUpdator;
53 class IEnergyLossUpdator;
54 
55 typedef std::vector<const Trk::TrackParameters*> TrackParametersVector;
56 
57 typedef std::pair<const Surface*, BoundaryCheck> DestSurf;
58 
59 struct DestBound
60 {
61  const Surface* surface; // surface
62  double distance; // distance to surface
63  unsigned int bIndex; // boundary index for fast navigation to the next volume
64  //
65  DestBound(const Surface* surf, double dist, unsigned int index)
66  : surface(surf)
67  , distance(dist)
68  , bIndex(index)
69  {
70  }
71 };
72 
74 {
78  //
80  const TrackingVolume* exitTV,
81  const TrackingVolume* entryTV)
82  : trPar(parms)
83  , exitVol(exitTV)
84  , entryVol(entryTV)
85  {
86  }
87 };
88 
90 {
91  float distance;
94  //
95  IdentifiedIntersection(float dist, int id, const Trk::Material* mat)
96  : distance(dist)
97  , identifier(id)
98  , material(mat)
99  {
100  }
101 };
102 
111 {
117 
119  : nextVolume(nullptr)
120  , nextParameters(nullptr)
121  , navParameters(nullptr)
123  {
124  }
125 
128  const TrackParameters* nextPars,
129  const TrackParameters* navPars,
131  {
132  nextVolume = tvol;
133  nextParameters = nextPars;
134  navParameters = navPars;
135  exitFace = face;
136  }
137 
140  {
141  nextVolume = nullptr;
142  nextParameters = nullptr;
143  navParameters = nullptr;
145  }
146 };
147 
161 class TimedExtrapolator final
162  : public AthAlgTool
163  , virtual public ITimedExtrapolator
164 {
165 public:
167  TimedExtrapolator(const std::string&, const std::string&, const IInterface*);
170 
177  virtual StatusCode initialize() override;
179  virtual StatusCode finalize() override;
180 
185  virtual std::unique_ptr<const Trk::TrackParameters> extrapolateWithPathLimit(
186  const Trk::TrackParameters& parm,
187  Trk::PathLimit& pathLim,
188  Trk::TimeLimit& time,
191  std::vector<Trk::HitInfo>*& hitVector,
192  Trk::GeometrySignature& nextGeoID,
193  const Trk::TrackingVolume* boundaryVol = nullptr) const override;
194 
199  virtual std::unique_ptr<const Trk::TrackParameters>
201  const Trk::TrackParameters& parm,
202  Trk::PathLimit& pathLim,
203  Trk::TimeLimit& time,
206  std::vector<Trk::HitInfo>*& hitVector,
207  Trk::GeometrySignature& nextGeoId,
208  const Trk::TrackingVolume* boundaryVol = nullptr) const override;
209 
212  virtual const TrackingGeometry* trackingGeometry() const override;
213 
217  virtual void validationAction() const override;
218 
219 private:
220  struct Cache;
221  std::unique_ptr<const Trk::TrackParameters> extrapolateToVolumeWithPathLimit(
223  const Trk::TrackParameters& parm,
227  Trk::GeometrySignature& nextGeoID,
228  const Trk::TrackingVolume* destVol) const;
229 
231  const Trk::TrackParameters& parm,
235  Trk::GeometrySignature& nextGeoId,
236  const Trk::AlignableTrackingVolume* aliTV) const;
237 
238  std::unique_ptr<const Trk::TrackParameters> transportToVolumeWithPathLimit(
240  const Trk::TrackParameters& parm,
244  Trk::GeometrySignature& nextGeoId,
245  const Trk::TrackingVolume* boundaryVol) const;
246 
248  const Trk::TrackParameters& parm,
252  Trk::GeometrySignature& nextGeoId,
253  const Trk::AlignableTrackingVolume* aliTV) const;
254 
256  const IPropagator* subPropagator(const TrackingVolume& tvol) const;
257 
260 
263  const Trk::TrackParameters* garbage) const;
264 
267 
270  const IPropagator& prop,
271  const TrackParameters& parm,
272  const TrackParameters& parsOnLayer,
273  const Layer& lay,
274  // const TrackingVolume& tvol,
275  float time,
277  const BoundaryCheck& bcheck = true,
279  bool startingLayer = false) const;
280 
283  // unsigned int geoIDToDetOrder(Trk::GeometrySignature geoid) const;
284 
286  std::string positionOutput(const Amg::Vector3D& pos) const;
287 
289  static std::string momentumOutput(const Amg::Vector3D& mom);
290 
291  // --------------- Used Tools ----------------------------- //
292 
293  ToolHandleArray<IPropagator> m_propagators;
294  ToolHandle<IPropagator> m_stepPropagator;
295  ToolHandle<INavigator> m_navigator;
296  ToolHandleArray<ITimedMatEffUpdator> m_updators;
298  ToolHandleArray<IMultipleScatteringUpdator>
300  ToolHandle<IEnergyLossUpdator> m_elossupdater;
301 
302  // ---------------- For Extrapolation handling ------------ //
303 
304  std::vector<const IPropagator*>
306  std::vector<const ITimedMatEffUpdator*>
308 
309  // ---------------- For Extrapolator configuration ------------ //
310 
311  std::vector<std::string> m_propNames;
312  std::vector<std::string> m_updatNames;
313 
314  // --------------- General steering & Navigation -------------- //
315 
316  unsigned int m_meotpIndex;
317  unsigned int m_configurationLevel;
324  bool m_stopWithUpdateZero;
327  bool m_referenceMaterial;
330  unsigned int m_initialLayerAttempts;
331  unsigned int m_successiveLayerAttempts;
333 
335  double m_tolerance;
336 
338 
339  // ------------------------------------------------------- //
340 
344  bool m_useMuonMatApprox;
347  bool m_resolveActive;
350 
351  //-------------------------- SCREEN output steering
352  //-------------------------------------------//
355  // ----------------------------- navigation validation section
356  // -----------------------------------------------------------
357 
361 
364  // bool m_cacheLastMatLayer {}; // steering of the material layer cache
365  unsigned int m_maxNavigSurf;
366  unsigned int m_maxNavigVol;
367 
368  struct Cache
369  {
370  Cache(unsigned int max_navig_surf = 1000.)
371  : m_path(0., 0)
372  {
373  m_navigSurfs.reserve(max_navig_surf);
374  }
376  {
377  for (std::pair<const Trk::TrackParameters*, bool> param : m_garbageBin) {
378  if (param.second) {
379  delete param.first;
380  }
381  }
382  }
383  bool m_dense{};
384 
385  // ------------ Recall / Boundary Information ----------------------- //
387  std::vector<Trk::HitInfo>* m_hitVector{};
388 
389  std::map<const Trk::TrackParameters*, bool>
391 
395  std::pair<unsigned int, unsigned int> m_denseResolved{};
396  unsigned int m_layerResolved{};
397  std::vector<std::pair<const Trk::DetachedTrackingVolume*, unsigned int>> m_detachedVols;
398  std::vector<std::pair<const Trk::TrackingVolume*, unsigned int>> m_denseVols;
399  std::vector<std::pair<const Trk::TrackingVolume*, const Trk::Layer*>> m_navigLays;
400  std::vector<DestSurf> m_staticBoundaries;
401  std::vector<DestSurf> m_detachedBoundaries;
402  std::vector<DestSurf> m_denseBoundaries;
403  std::vector<DestSurf> m_navigBoundaries;
404  std::vector<DestSurf> m_layers;
406  double m_time{};
407 
408  //------------------------- NAVIGATION --------
409  //----------------------------------------------//
411 
412  // ------------------------------- cache
413  // --------------------------------------------------------------------
414 
416 
417  std::vector<std::pair<const Trk::Surface*, Trk::BoundaryCheck>> m_navigSurfs;
418  std::vector<std::pair<const Trk::Surface*, double>> m_trSurfs;
419  std::vector<Trk::DestBound> m_trStaticBounds; // need to cache the boundary index, too
420  std::vector<std::pair<const Trk::Surface*, double>> m_trDenseBounds;
421  std::vector<std::pair<const Trk::Surface*, double>> m_trLays;
422 
423  double m_particleMass{};
424  };
425 
426  //------------ Magnetic field properties
429 
430 
431 };
432 
433 inline const TrackingGeometry*
435 {
436  if (m_navigator) {
437  return m_navigator->trackingGeometry(Gaudi::Hive::currentContext());
438  }
439  return nullptr;
440 }
441 
442 inline const IPropagator*
444 {
445  const IPropagator* currentPropagator = (tvol.geometrySignature() < m_subPropagators.size())
447  : nullptr;
448  if (!currentPropagator) {
449  msg(MSG::ERROR) << "[!] Configuration problem: no Propagator found for volumeSignature: "
450  << tvol.geometrySignature() << endmsg;
451  }
452  return currentPropagator;
453 }
454 
455 inline const ITimedMatEffUpdator*
457 {
458  return (tvol.geometrySignature() < m_subUpdators.size()) ? m_subUpdators[tvol.geometrySignature()]
459  : nullptr;
460 }
461 
462 inline void
464  const Trk::TrackParameters* pars) const
465 {
466  if (pars)
467  cache.m_garbageBin[pars] = true;
468 }
469 
470 /*
471 inline unsigned int TimedExtrapolator::geoIDToDetOrder(Trk::GeometrySignature
472 geoid) const
473 {
474  if ( geoid == Trk::ID ) return 0;
475  else if ( geoid == Trk::Calo ) return 1;
476  else if ( geoid == Trk::MS ) return 2;
477 
478  return 0;
479 }
480 */
481 
482 } // end of namespace
483 
484 #endif // TRKEXTOOLS_TIMEDEXTRAPOLATOR_H
485 
Trk::BoundaryTrackParameters::BoundaryTrackParameters
BoundaryTrackParameters(const TrackParameters *parms, const TrackingVolume *exitTV, const TrackingVolume *entryTV)
Definition: TimedExtrapolator.h:79
Trk::anyDirection
@ anyDirection
Definition: PropDirection.h:22
make_hlt_rep.pars
pars
Definition: make_hlt_rep.py:90
Trk::ParamsNextVolume::nextParameters
const TrackParameters * nextParameters
Definition: TimedExtrapolator.h:114
Trk::ParamsNextVolume::ParamsNextVolume
ParamsNextVolume()
update the boundaryInformation
Definition: TimedExtrapolator.h:118
Trk::TimedExtrapolator::Cache::m_denseResolved
std::pair< unsigned int, unsigned int > m_denseResolved
Definition: TimedExtrapolator.h:395
Trk::TimedExtrapolator::throwIntoGarbageBin
void throwIntoGarbageBin(Trk::TimedExtrapolator::Cache &cache, const Trk::TrackParameters *garbage) const
Private method for throwing into the GarbageBin.
Definition: TimedExtrapolator.h:463
Trk::TimedExtrapolator::m_meotpIndex
unsigned int m_meotpIndex
if several meotps are available in a volume steer which one to use
Definition: TimedExtrapolator.h:316
Trk::TimedExtrapolator::m_configurationLevel
unsigned int m_configurationLevel
see the supported levels of configuration above
Definition: TimedExtrapolator.h:318
Trk::TimedExtrapolator::Cache::m_trSurfs
std::vector< std::pair< const Trk::Surface *, double > > m_trSurfs
Definition: TimedExtrapolator.h:418
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:76
Trk::TimedExtrapolator::m_caloMsSecondary
bool m_caloMsSecondary
handling of secondaries beyond ID
Definition: TimedExtrapolator.h:337
Trk::TimedExtrapolator::initialize
virtual StatusCode initialize() override
AlgTool initailize method.
Definition: TimedExtrapolator.cxx:152
Trk::TimedExtrapolator::m_navigator
ToolHandle< INavigator > m_navigator
Navigator for TrackingGeometry and magnetic fiels acces.
Definition: TimedExtrapolator.h:295
TrackParameters.h
GeometrySignature.h
Trk::TimedExtrapolator::Cache::m_denseVols
std::vector< std::pair< const Trk::TrackingVolume *, unsigned int > > m_denseVols
Definition: TimedExtrapolator.h:398
Trk::IdentifiedIntersection::identifier
int identifier
Definition: TimedExtrapolator.h:92
Trk::TimedExtrapolator::Cache::m_hitVector
std::vector< Trk::HitInfo > * m_hitVector
return helper for hit info
Definition: TimedExtrapolator.h:387
Trk::TimedExtrapolator::m_stopWithUpdateZero
bool m_stopWithUpdateZero
return 0 if update kills the trajectory
Definition: TimedExtrapolator.h:325
ITimedExtrapolator.h
Trk::ParamsNextVolume::navParameters
const TrackParameters * navParameters
Definition: TimedExtrapolator.h:115
Trk::MagneticFieldProperties
Definition: MagneticFieldProperties.h:31
Trk::ParamsNextVolume::boundaryInformation
void boundaryInformation(const TrackingVolume *tvol, const TrackParameters *nextPars, const TrackParameters *navPars, BoundarySurfaceFace face=undefinedFace)
reset the boundary information by invalidating it
Definition: TimedExtrapolator.h:127
Trk::TimedExtrapolator::trackingGeometry
virtual const TrackingGeometry * trackingGeometry() const override
Return the TrackingGeometry used by the Extrapolator (forward information from Navigator)
Definition: TimedExtrapolator.h:434
Trk::TimedExtrapolator::validationAction
virtual void validationAction() const override
Validation Action: Can be implemented optionally, outside access to internal validation steps.
Definition: TimedExtrapolator.cxx:1351
Trk::TimedExtrapolator::Cache::m_detachedBoundaries
std::vector< DestSurf > m_detachedBoundaries
Definition: TimedExtrapolator.h:401
Trk::TimedExtrapolator::~TimedExtrapolator
virtual ~TimedExtrapolator()
Destructor.
Trk::TrackingVolume::geometrySignature
GeometrySignature geometrySignature() const
return the Signature
index
Definition: index.py:1
Trk::TimedExtrapolator::Cache::m_denseBoundaries
std::vector< DestSurf > m_denseBoundaries
Definition: TimedExtrapolator.h:402
Trk::TimedExtrapolator::m_printRzOutput
bool m_printRzOutput
Definition: TimedExtrapolator.h:354
Trk::TimedExtrapolator::Cache::m_lastMaterialLayer
const Layer * m_lastMaterialLayer
cache layer with last material update
Definition: TimedExtrapolator.h:415
mat
GeoMaterial * mat
Definition: LArDetectorConstructionTBEC.cxx:55
Trk::TimedExtrapolator::Cache::m_particleMass
double m_particleMass
Definition: TimedExtrapolator.h:423
Trk::TimedExtrapolator::m_printHelpOutputAtInitialize
bool m_printHelpOutputAtInitialize
Definition: TimedExtrapolator.h:353
Trk::ParamsNextVolume::nextVolume
const TrackingVolume * nextVolume
< the members
Definition: TimedExtrapolator.h:113
hitVector
std::vector< FPGATrackSimHit > hitVector
Definition: FPGATrackSimCluster.h:22
Trk::TimedExtrapolator::Cache::m_trStaticBounds
std::vector< Trk::DestBound > m_trStaticBounds
Definition: TimedExtrapolator.h:419
Trk::TimedExtrapolator::Cache::m_path
PathLimit m_path
Definition: TimedExtrapolator.h:405
Trk::ParamsNextVolume::resetBoundaryInformation
void resetBoundaryInformation()
Definition: TimedExtrapolator.h:139
Trk::TimedExtrapolator::m_propagators
ToolHandleArray< IPropagator > m_propagators
Array of Propagators.
Definition: TimedExtrapolator.h:293
Trk::TimedExtrapolator::m_skipInitialLayerUpdate
bool m_skipInitialLayerUpdate
skip the initial post-Update at the layer [Fatras conversion mode]
Definition: TimedExtrapolator.h:326
Trk::TimedExtrapolator::m_propNames
std::vector< std::string > m_propNames
configuration of subPropagators
Definition: TimedExtrapolator.h:311
Surface
Definition: Trigger/TrigAccel/TrigCudaFitter/src/Surface.h:8
Trk::TimedExtrapolator::m_resolveActive
bool m_resolveActive
Definition: TimedExtrapolator.h:348
Trk::TimedExtrapolator::Cache::m_detachedVols
std::vector< std::pair< const Trk::DetachedTrackingVolume *, unsigned int > > m_detachedVols
Definition: TimedExtrapolator.h:397
Trk::TimedExtrapolator::m_requireMaterialDestinationHit
bool m_requireMaterialDestinationHit
require the destination surface hit for material collection
Definition: TimedExtrapolator.h:321
Trk::DestBound::distance
double distance
Definition: TimedExtrapolator.h:62
PropDirection.h
Trk::BoundaryTrackParameters::entryVol
const TrackingVolume * entryVol
Definition: TimedExtrapolator.h:77
Trk::IdentifiedIntersection::material
const Trk::Material * material
Definition: TimedExtrapolator.h:93
Trk::TimedExtrapolator::emptyGarbageBin
void emptyGarbageBin(Trk::TimedExtrapolator::Cache &cache, const Trk::TrackParameters *) const
Private method for emptying the GarbageBin.
Definition: TimedExtrapolator.cxx:1326
Trk::TimedExtrapolator::m_elossupdater
ToolHandle< IEnergyLossUpdator > m_elossupdater
EnergyLoss Updater.
Definition: TimedExtrapolator.h:300
Trk::TimedExtrapolator::m_useMuonMatApprox
bool m_useMuonMatApprox
use approximative MS inert material
Definition: TimedExtrapolator.h:345
Trk::TimedExtrapolator::extrapolateInAlignableTV
BoundaryTrackParameters extrapolateInAlignableTV(Trk::TimedExtrapolator::Cache &cache, const Trk::TrackParameters &parm, Trk::TimeLimit &time, Trk::PropDirection dir, Trk::ParticleHypothesis particle, Trk::GeometrySignature &nextGeoId, const Trk::AlignableTrackingVolume *aliTV) const
Definition: TimedExtrapolator.cxx:2466
Trk::BoundarySurfaceFace
BoundarySurfaceFace
Definition: BoundarySurfaceFace.h:31
python.RingerConstants.Layer
Layer
Definition: RingerConstants.py:42
Trk::TimedExtrapolator::m_subUpdators
std::vector< const ITimedMatEffUpdator * > m_subUpdators
Updators to chose from (steered by signature)
Definition: TimedExtrapolator.h:307
Trk::BoundaryTrackParameters::trPar
const TrackParameters * trPar
Definition: TimedExtrapolator.h:75
Trk::TimedExtrapolator::subPropagator
const IPropagator * subPropagator(const TrackingVolume &tvol) const
Access the subPropagator to the given volume.
Definition: TimedExtrapolator.h:443
Trk::ParamsNextVolume
Definition: TimedExtrapolator.h:111
Trk::TimedExtrapolator::m_includeMaterialEffects
bool m_includeMaterialEffects
boolean to switch on/off material effects
Definition: TimedExtrapolator.h:320
Trk::TimedExtrapolator::m_navigationStatistics
bool m_navigationStatistics
steer the output for the navigaiton statistics
Definition: TimedExtrapolator.h:358
Trk::TimedExtrapolator::Cache::m_methodSequence
int m_methodSequence
Definition: TimedExtrapolator.h:410
MagneticFieldProperties.h
Trk::ParticleHypothesis
ParticleHypothesis
Definition: ParticleHypothesis.h:25
Trk::TimedExtrapolator::transportInAlignableTV
BoundaryTrackParameters transportInAlignableTV(Trk::TimedExtrapolator::Cache &cache, const Trk::TrackParameters &parm, Trk::TimeLimit &time, Trk::PropDirection dir, Trk::ParticleHypothesis particle, Trk::GeometrySignature &nextGeoId, const Trk::AlignableTrackingVolume *aliTV) const
Definition: TimedExtrapolator.cxx:2147
Trk::TimedExtrapolator::Cache::m_parametersAtBoundary
ParamsNextVolume m_parametersAtBoundary
return helper for parameters and boundary
Definition: TimedExtrapolator.h:386
Trk::TimedExtrapolator::Cache::m_trLays
std::vector< std::pair< const Trk::Surface *, double > > m_trLays
Definition: TimedExtrapolator.h:421
Trk::PropDirection
PropDirection
Definition: PropDirection.h:19
Trk::ITimedExtrapolator
Definition: ITimedExtrapolator.h:41
Trk::TimedExtrapolator::extrapolateWithPathLimit
virtual std::unique_ptr< const Trk::TrackParameters > extrapolateWithPathLimit(const Trk::TrackParameters &parm, Trk::PathLimit &pathLim, Trk::TimeLimit &time, Trk::PropDirection dir, Trk::ParticleHypothesis particle, std::vector< Trk::HitInfo > *&hitVector, Trk::GeometrySignature &nextGeoID, const Trk::TrackingVolume *boundaryVol=nullptr) const override
Extrapolation method for charged, possibly unstable particles.
Definition: TimedExtrapolator.cxx:276
Trk::GeometrySignature
GeometrySignature
Definition: GeometrySignature.h:24
ParticleGun_EoverP_Config.mom
mom
Definition: ParticleGun_EoverP_Config.py:63
Trk::TimedExtrapolator::m_stepPropagator
ToolHandle< IPropagator > m_stepPropagator
Array of Propagators.
Definition: TimedExtrapolator.h:294
Trk::TimedExtrapolator::m_checkForCompundLayers
bool m_checkForCompundLayers
use the multi-layer tests for compound layers
Definition: TimedExtrapolator.h:346
Trk::BoundaryTrackParameters::exitVol
const TrackingVolume * exitVol
Definition: TimedExtrapolator.h:76
Trk::TimedExtrapolator::m_navigationBreakDetails
bool m_navigationBreakDetails
steer the output for the navigation break details
Definition: TimedExtrapolator.h:360
Trk::TimedExtrapolator::TimedExtrapolator
TimedExtrapolator(const std::string &, const std::string &, const IInterface *)
Constructor.
Definition: TimedExtrapolator.cxx:57
Trk::IPropagator
Definition: IPropagator.h:55
Trk::TrackingGeometry
Definition: TrackingGeometry.h:67
Trk::TimedExtrapolator::subMaterialEffectsUpdator
const ITimedMatEffUpdator * subMaterialEffectsUpdator(const TrackingVolume &tvol) const
Access the subPropagator to the given volume.
Definition: TimedExtrapolator.h:456
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Trk::DestBound
Definition: TimedExtrapolator.h:60
Trk::TimedExtrapolator::positionOutput
std::string positionOutput(const Amg::Vector3D &pos) const
Private method for conversion of the synchronized geometry signature to the natural subdetector order...
Definition: TimedExtrapolator.cxx:1306
Trk::pion
@ pion
Definition: ParticleHypothesis.h:29
AthAlgTool.h
Trk::TimedExtrapolator
Definition: TimedExtrapolator.h:164
Trk::TimedExtrapolator::Cache::m_trDenseBounds
std::vector< std::pair< const Trk::Surface *, double > > m_trDenseBounds
Definition: TimedExtrapolator.h:420
Trk::TimedExtrapolator::Cache::m_currentDense
const Trk::TrackingVolume * m_currentDense
Definition: TimedExtrapolator.h:393
Trk::TimedExtrapolator::m_activeOverlap
bool m_activeOverlap
consider overlaps between active muon volumes
Definition: TimedExtrapolator.h:341
Trk::DestBound::DestBound
DestBound(const Surface *surf, double dist, unsigned int index)
Definition: TimedExtrapolator.h:65
Trk::TimedExtrapolator::Cache::m_dense
bool m_dense
internal switch for resolved configuration
Definition: TimedExtrapolator.h:383
Trk::TimedExtrapolator::m_subPropagators
std::vector< const IPropagator * > m_subPropagators
Propagators to chose from (steered by signature)
Definition: TimedExtrapolator.h:305
Trk::TimedExtrapolator::m_maxNavigSurf
unsigned int m_maxNavigSurf
Definition: TimedExtrapolator.h:365
Trk::TimedExtrapolator::m_referenceMaterial
bool m_referenceMaterial
use the reference material for the update
Definition: TimedExtrapolator.h:328
Trk::ParametersBase
Definition: ParametersBase.h:55
Trk::TimedExtrapolator::m_useDenseVolumeDescription
bool m_useDenseVolumeDescription
use dense volume description when available in ID/Calo
Definition: TimedExtrapolator.h:343
Trk::TimedExtrapolator::Cache::m_navigBoundaries
std::vector< DestSurf > m_navigBoundaries
Definition: TimedExtrapolator.h:403
Trk::DestSurf
std::pair< const Surface *, BoundaryCheck > DestSurf
typedef for input surfaces, boundary check
Definition: IPropagator.h:45
Trk::TimeLimit
Definition: HelperStructs.h:58
Trk::TimedExtrapolator::m_fastField
bool m_fastField
Definition: TimedExtrapolator.h:427
Trk::TimedExtrapolator::momentumOutput
static std::string momentumOutput(const Amg::Vector3D &mom)
For the output - global momentum.
Definition: TimedExtrapolator.cxx:1318
Trk::TimedExtrapolator::m_updators
ToolHandleArray< ITimedMatEffUpdator > m_updators
Array of Material Updators.
Definition: TimedExtrapolator.h:297
beamspotman.dir
string dir
Definition: beamspotman.py:623
Trk::TimedExtrapolator::Cache::m_navigSurfs
std::vector< std::pair< const Trk::Surface *, Trk::BoundaryCheck > > m_navigSurfs
Definition: TimedExtrapolator.h:417
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:227
Trk::BoundaryTrackParameters
Definition: TimedExtrapolator.h:74
Trk::TimedExtrapolator::extrapolateToVolumeWithPathLimit
std::unique_ptr< const Trk::TrackParameters > extrapolateToVolumeWithPathLimit(Trk::TimedExtrapolator::Cache &cache, const Trk::TrackParameters &parm, Trk::TimeLimit &time, Trk::PropDirection dir, Trk::ParticleHypothesis particle, Trk::GeometrySignature &nextGeoID, const Trk::TrackingVolume *destVol) const
Definition: TimedExtrapolator.cxx:355
Trk::TimedExtrapolator::m_fieldProperties
Trk::MagneticFieldProperties m_fieldProperties
Definition: TimedExtrapolator.h:428
Trk::TimedExtrapolator::transportToVolumeWithPathLimit
std::unique_ptr< const Trk::TrackParameters > transportToVolumeWithPathLimit(Trk::TimedExtrapolator::Cache &cache, const Trk::TrackParameters &parm, Trk::TimeLimit &time, Trk::PropDirection dir, Trk::ParticleHypothesis particle, Trk::GeometrySignature &nextGeoId, const Trk::TrackingVolume *boundaryVol) const
Definition: TimedExtrapolator.cxx:1429
BoundarySurfaceFace.h
Trk::TimedExtrapolator::Cache::Cache
Cache(unsigned int max_navig_surf=1000.)
Definition: TimedExtrapolator.h:370
Trk::PathLimit
Definition: HelperStructs.h:34
Trk::TimedExtrapolator::m_successiveLayerAttempts
unsigned int m_successiveLayerAttempts
layer intersection attemps after one layer has been hit sucessfully
Definition: TimedExtrapolator.h:332
Trk::IdentifiedIntersection::distance
float distance
Definition: TimedExtrapolator.h:91
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::TrackParametersVector
std::vector< const Trk::TrackParameters * > TrackParametersVector
Definition: TimedExtrapolator.h:53
Trk::TimedExtrapolator::m_msupdators
ToolHandleArray< IMultipleScatteringUpdator > m_msupdators
Array of MultipleScattering Updators.
Definition: TimedExtrapolator.h:299
Trk::TimedExtrapolator::m_materialEffectsOnTrackValidation
bool m_materialEffectsOnTrackValidation
mat effects on track validation
Definition: TimedExtrapolator.h:363
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
BoundarySurface.h
Trk::ITimedMatEffUpdator
Definition: ITimedMatEffUpdator.h:43
Trk::TimedExtrapolator::m_robustSampling
bool m_robustSampling
Definition: TimedExtrapolator.h:342
Trk::TimedExtrapolator::Cache::m_navigLays
std::vector< std::pair< const Trk::TrackingVolume *, const Trk::Layer * > > m_navigLays
Definition: TimedExtrapolator.h:399
Trk::DestBound::bIndex
unsigned int bIndex
Definition: TimedExtrapolator.h:63
TrackingVolume.h
Trk::IdentifiedIntersection
Definition: TimedExtrapolator.h:90
Trk::TimedExtrapolator::m_extendedLayerSearch
bool m_extendedLayerSearch
extended layer search
Definition: TimedExtrapolator.h:329
ITimedMatEffUpdator.h
Trk::TimedExtrapolator::Cache::~Cache
~Cache()
Definition: TimedExtrapolator.h:375
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
Trk::DestBound::surface
const Surface * surface
Definition: TimedExtrapolator.h:61
Trk::TimedExtrapolator::m_resolveMultilayers
bool m_resolveMultilayers
Definition: TimedExtrapolator.h:349
INavigator.h
Trk::BoundaryCheck
Definition: BoundaryCheck.h:51
Trk::TimedExtrapolator::Cache
Definition: TimedExtrapolator.h:369
PlaneSurface.h
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
BoundaryCheck.h
Trk::TimedExtrapolator::Cache::m_garbageBin
std::map< const Trk::TrackParameters *, bool > m_garbageBin
garbage collection during extrapolation
Definition: TimedExtrapolator.h:390
Trk::TimedExtrapolator::m_maxNavigVol
unsigned int m_maxNavigVol
Definition: TimedExtrapolator.h:366
Trk::TimedExtrapolator::finalize
virtual StatusCode finalize() override
AlgTool finalize method.
Definition: TimedExtrapolator.cxx:270
Track
Definition: TriggerChamberClusterOnTrackCreator.h:21
Trk::undefinedFace
@ undefinedFace
Definition: BoundarySurfaceFace.h:59
Trk::TimedExtrapolator::Cache::m_layerResolved
unsigned int m_layerResolved
Definition: TimedExtrapolator.h:396
Trk::Material
Definition: Material.h:116
Trk::TimedExtrapolator::m_initialLayerAttempts
unsigned int m_initialLayerAttempts
allowed layer intersection attempts at the start of a volume
Definition: TimedExtrapolator.h:330
Trk::TimedExtrapolator::m_updatNames
std::vector< std::string > m_updatNames
configuration of subUpdators
Definition: TimedExtrapolator.h:312
Trk::TimedExtrapolator::m_stopWithNavigationBreak
bool m_stopWithNavigationBreak
return 0 if navigation breaks - for validation reasons
Definition: TimedExtrapolator.h:323
AthAlgTool
Definition: AthAlgTool.h:26
Trk::IdentifiedIntersection::IdentifiedIntersection
IdentifiedIntersection(float dist, int id, const Trk::Material *mat)
Definition: TimedExtrapolator.h:95
Trk::TimedExtrapolator::Cache::m_layers
std::vector< DestSurf > m_layers
Definition: TimedExtrapolator.h:404
Trk::TimedExtrapolator::Cache::m_staticBoundaries
std::vector< DestSurf > m_staticBoundaries
Definition: TimedExtrapolator.h:400
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
checker_macros.h
Define macros for attributes used to control the static checker.
Trk::TimedExtrapolator::overlapSearch
void overlapSearch(Trk::TimedExtrapolator::Cache &cache, const IPropagator &prop, const TrackParameters &parm, const TrackParameters &parsOnLayer, const Layer &lay, float time, PropDirection dir=anyDirection, const BoundaryCheck &bcheck=true, ParticleHypothesis particle=pion, bool startingLayer=false) const
Private to search for overlap surfaces.
Definition: TimedExtrapolator.cxx:1133
Trk::TimedExtrapolator::m_tolerance
double m_tolerance
surfacen & volume tolerance
Definition: TimedExtrapolator.h:335
Trk::TrackingVolume
Definition: TrackingVolume.h:121
Trk::TimedExtrapolator::transportNeutralsWithPathLimit
virtual std::unique_ptr< const Trk::TrackParameters > transportNeutralsWithPathLimit(const Trk::TrackParameters &parm, Trk::PathLimit &pathLim, Trk::TimeLimit &time, Trk::PropDirection dir, Trk::ParticleHypothesis particle, std::vector< Trk::HitInfo > *&hitVector, Trk::GeometrySignature &nextGeoId, const Trk::TrackingVolume *boundaryVol=nullptr) const override
Transport method for neutral, possibly unstable particles.
Definition: TimedExtrapolator.cxx:1360
Trk::TimedExtrapolator::Cache::m_time
double m_time
Definition: TimedExtrapolator.h:406
Trk::ParamsNextVolume::exitFace
BoundarySurfaceFace exitFace
Definition: TimedExtrapolator.h:116
Trk::TimedExtrapolator::Cache::m_highestVolume
const Trk::TrackingVolume * m_highestVolume
Definition: TimedExtrapolator.h:394
Trk::TimedExtrapolator::Cache::m_currentStatic
const Trk::TrackingVolume * m_currentStatic
Definition: TimedExtrapolator.h:392
Trk::Layer
Definition: Layer.h:73
Trk::AlignableTrackingVolume
Definition: AlignableTrackingVolume.h:36