ATLAS Offline Software
TimedExtrapolator.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 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 
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{this,
294  "Propagators", {}, "Array of Propagators"};
295  ToolHandle<IPropagator> m_stepPropagator{this,
296  "STEP_Propagator", "Trk::STEP_Propagator/AtlasSTEP_Propagator"};
297  ToolHandle<INavigator> m_navigator{this,
298  "Navigator", "Trk::Navigator/AtlasNavigator",
299  "Navigator for TrackingGeometry and magnetic fiels access"};
300  ToolHandleArray<ITimedMatEffUpdator> m_updators{this,
301  "MaterialEffectsUpdators", {}, "Array of Material Updators"};
302  ToolHandleArray<IMultipleScatteringUpdator> m_msupdators{this,
303  "MultipleScatteringUpdators", {}, " Array of MultipleScattering Updators"};
304  ToolHandle<IEnergyLossUpdator> m_elossupdater{this,
305  "EnergyLossUpdater", "Trk::EnergyLossUpdator/AtlasEnergyLossUpdator"};
306 
307  // ---------------- For Extrapolation handling ------------ //
308 
309  std::vector<const IPropagator*>
311  std::vector<const ITimedMatEffUpdator*>
313 
314  // ---------------- For Extrapolator configuration ------------ //
315 
316  StringArrayProperty m_propNames{this, "SubPropagators", {},
317  "configuration of subPropagators"};
318  StringArrayProperty m_updatNames{this, "SubMEUpdators", {},
319  "configuration of subupdaters"};
320 
321  // --------------- General steering & Navigation -------------- //
322 
323  UnsignedIntegerProperty m_meotpIndex{
324  this, "MaterialEffectsOnTrackProviderIndex", 0,
325  "if several meotps are available in a volume steer which one to use"};
326  unsigned int m_configurationLevel = 10;
327  BooleanProperty m_includeMaterialEffects{this, "ApplyMaterialEffects", true,
329  "boolean to switch on/off material effects"};
330  BooleanProperty m_stopWithNavigationBreak{this, "StopWithNavigationBreak", false,
331  "return 0 if navigation breaks - for validation reasons"};
332  BooleanProperty m_stopWithUpdateZero{this, "StopWithUpdateKill", false,
333  "return 0 if update kills the trajectory"};
334  BooleanProperty m_skipInitialLayerUpdate{this, "SkipInitialPostUpdate", false,
335  "skip the initial post-Update at the layer [Fatras conversion mode]"};
336  BooleanProperty m_referenceMaterial{this, "ReferenceMaterial", false,
337  "use the reference material for the update"};
338  UnsignedIntegerProperty m_initialLayerAttempts{this, "InitialLayerAttempts", 3,
339  "allowed layer intersection attempts at the start of a volume"};
340  UnsignedIntegerProperty m_successiveLayerAttempts{
341  this, "SuccessiveLayerAttempts", 1,
342  "layer intersection attemps after one layer has been hit sucessfully"};
343 
344  DoubleProperty m_tolerance{this, "Tolerance", 0.002, "surface & volume tolerance"};
345 
346  BooleanProperty m_caloMsSecondary{this, "CaloMsSecondary", false,
347  "handling of secondaries beyond ID"};
348 
349  // ------------------------------------------------------- //
350 
351  BooleanProperty m_robustSampling{this, "RobustSampling", true};
353  this, "UseDenseVolumeDescription", true,
354  "use dense volume description when available in ID/Calo"};
355  BooleanProperty m_useMuonMatApprox{this, "UseMuonMatApproximation", false,
356  "use approximative MS inert material"};
357  BooleanProperty m_resolveActive{this, "ResolveMuonStation", false};
358  BooleanProperty m_resolveMultilayers{this, "ResolveMultilayers", true};
359 
360  //-------------------------- SCREEN output steering
361  //-------------------------------------------//
362  BooleanProperty m_printHelpOutputAtInitialize{this, "HelpOutput", false};
363  BooleanProperty m_printRzOutput{this, "positionOutput", true};
364  // ----------------------------- navigation validation section
365  // -----------------------------------------------------------
366 
367  BooleanProperty m_navigationStatistics{this, "NavigationStatisticsOutput", false,
368  "steer the output for the navigation statistics"};
369  BooleanProperty m_navigationBreakDetails{this, "DetailedNavigationOutput", false,
370  "steer the output for the navigation break details"};
372  "MaterialEffectsOnTrackValidation", false, "mat effects on track validation"};
373  unsigned int m_maxNavigSurf{};
374  unsigned int m_maxNavigVol{};
375 
376  struct Cache
377  {
378  Cache(unsigned int max_navig_surf = 1000.)
379  : m_path(0., 0)
380  {
381  m_navigSurfs.reserve(max_navig_surf);
382  }
384  {
385  for (std::pair<const Trk::TrackParameters*, bool> param : m_garbageBin) {
386  if (param.second) {
387  delete param.first;
388  }
389  }
390  }
391  bool m_dense{};
392 
393  // ------------ Recall / Boundary Information ----------------------- //
395  std::vector<Trk::HitInfo>* m_hitVector{};
396 
397  std::map<const Trk::TrackParameters*, bool>
399 
403  std::pair<unsigned int, unsigned int> m_denseResolved{};
404  unsigned int m_layerResolved{};
405  std::vector<std::pair<const Trk::DetachedTrackingVolume*, unsigned int>> m_detachedVols;
406  std::vector<std::pair<const Trk::TrackingVolume*, unsigned int>> m_denseVols;
407  std::vector<std::pair<const Trk::TrackingVolume*, const Trk::Layer*>> m_navigLays;
408  std::vector<DestSurf> m_staticBoundaries;
409  std::vector<DestSurf> m_detachedBoundaries;
410  std::vector<DestSurf> m_denseBoundaries;
411  std::vector<DestSurf> m_navigBoundaries;
412  std::vector<DestSurf> m_layers;
414  double m_time{};
415 
416  //------------------------- NAVIGATION --------
417  //----------------------------------------------//
419 
420  // ------------------------------- cache
421  // --------------------------------------------------------------------
422 
424 
425  std::vector<std::pair<const Trk::Surface*, Trk::BoundaryCheck>> m_navigSurfs;
426  std::vector<std::pair<const Trk::Surface*, double>> m_trSurfs;
427  std::vector<Trk::DestBound> m_trStaticBounds; // need to cache the boundary index, too
428  std::vector<std::pair<const Trk::Surface*, double>> m_trDenseBounds;
429  std::vector<std::pair<const Trk::Surface*, double>> m_trLays;
430 
431  double m_particleMass{};
432  };
433 
434  //------------ Magnetic field properties
435  BooleanProperty m_fastField{this, "MagneticFieldProperties", false};
437 
438 
439 };
440 
441 inline const TrackingGeometry*
443 {
444  if (m_navigator) {
445  return m_navigator->trackingGeometry(Gaudi::Hive::currentContext());
446  }
447  return nullptr;
448 }
449 
450 inline const IPropagator*
452 {
453  const IPropagator* currentPropagator = (tvol.geometrySignature() < m_subPropagators.size())
455  : nullptr;
456  if (!currentPropagator) {
457  msg(MSG::ERROR) << "[!] Configuration problem: no Propagator found for volumeSignature: "
458  << tvol.geometrySignature() << endmsg;
459  }
460  return currentPropagator;
461 }
462 
463 inline const ITimedMatEffUpdator*
465 {
466  return (tvol.geometrySignature() < m_subUpdators.size()) ? m_subUpdators[tvol.geometrySignature()]
467  : nullptr;
468 }
469 
470 inline void
472  const Trk::TrackParameters* pars) const
473 {
474  if (pars)
475  cache.m_garbageBin[pars] = true;
476 }
477 
478 
479 } // end of namespace
480 
481 #endif // TRKEXTOOLS_TIMEDEXTRAPOLATOR_H
482 
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:403
Trk::TimedExtrapolator::throwIntoGarbageBin
void throwIntoGarbageBin(Trk::TimedExtrapolator::Cache &cache, const Trk::TrackParameters *garbage) const
Private method for throwing into the GarbageBin.
Definition: TimedExtrapolator.h:471
Trk::TimedExtrapolator::m_tolerance
DoubleProperty m_tolerance
Definition: TimedExtrapolator.h:344
Trk::TimedExtrapolator::m_configurationLevel
unsigned int m_configurationLevel
see the supported levels of configuration above
Definition: TimedExtrapolator.h:326
Trk::TimedExtrapolator::Cache::m_trSurfs
std::vector< std::pair< const Trk::Surface *, double > > m_trSurfs
Definition: TimedExtrapolator.h:426
Trk::TimedExtrapolator::m_materialEffectsOnTrackValidation
BooleanProperty m_materialEffectsOnTrackValidation
Definition: TimedExtrapolator.h:371
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:79
Trk::TimedExtrapolator::initialize
virtual StatusCode initialize() override
AlgTool initailize method.
Definition: TimedExtrapolator.cxx:69
Trk::TimedExtrapolator::m_navigator
ToolHandle< INavigator > m_navigator
Definition: TimedExtrapolator.h:297
TrackParameters.h
GeometrySignature.h
Trk::TimedExtrapolator::Cache::m_denseVols
std::vector< std::pair< const Trk::TrackingVolume *, unsigned int > > m_denseVols
Definition: TimedExtrapolator.h:406
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:395
Trk::TimedExtrapolator::m_referenceMaterial
BooleanProperty m_referenceMaterial
Definition: TimedExtrapolator.h:336
ITimedExtrapolator.h
Trk::ParamsNextVolume::navParameters
const TrackParameters * navParameters
Definition: TimedExtrapolator.h:115
Trk::MagneticFieldProperties
Definition: MagneticFieldProperties.h:31
Trk::TimedExtrapolator::m_successiveLayerAttempts
UnsignedIntegerProperty m_successiveLayerAttempts
Definition: TimedExtrapolator.h:340
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:442
Trk::TimedExtrapolator::validationAction
virtual void validationAction() const override
Validation Action: Can be implemented optionally, outside access to internal validation steps.
Definition: TimedExtrapolator.cxx:1259
Trk::TimedExtrapolator::Cache::m_detachedBoundaries
std::vector< DestSurf > m_detachedBoundaries
Definition: TimedExtrapolator.h:409
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:410
Trk::TimedExtrapolator::Cache::m_lastMaterialLayer
const Layer * m_lastMaterialLayer
cache layer with last material update
Definition: TimedExtrapolator.h:423
mat
GeoMaterial * mat
Definition: LArDetectorConstructionTBEC.cxx:55
Trk::TimedExtrapolator::Cache::m_particleMass
double m_particleMass
Definition: TimedExtrapolator.h:431
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:427
Trk::TimedExtrapolator::Cache::m_path
PathLimit m_path
Definition: TimedExtrapolator.h:413
Trk::ParamsNextVolume::resetBoundaryInformation
void resetBoundaryInformation()
Definition: TimedExtrapolator.h:139
Trk::TimedExtrapolator::m_propagators
ToolHandleArray< IPropagator > m_propagators
Definition: TimedExtrapolator.h:293
Surface
Definition: Trigger/TrigAccel/TrigCudaFitter/src/Surface.h:8
Trk::TimedExtrapolator::m_resolveMultilayers
BooleanProperty m_resolveMultilayers
Definition: TimedExtrapolator.h:358
Trk::TimedExtrapolator::Cache::m_detachedVols
std::vector< std::pair< const Trk::DetachedTrackingVolume *, unsigned int > > m_detachedVols
Definition: TimedExtrapolator.h:405
Trk::DestBound::distance
double distance
Definition: TimedExtrapolator.h:62
PropDirection.h
Trk::TimedExtrapolator::m_stopWithNavigationBreak
BooleanProperty m_stopWithNavigationBreak
Definition: TimedExtrapolator.h:330
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:1234
Trk::TimedExtrapolator::m_elossupdater
ToolHandle< IEnergyLossUpdator > m_elossupdater
Definition: TimedExtrapolator.h:304
Trk::TimedExtrapolator::m_skipInitialLayerUpdate
BooleanProperty m_skipInitialLayerUpdate
Definition: TimedExtrapolator.h:334
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:2351
Trk::TimedExtrapolator::m_useMuonMatApprox
BooleanProperty m_useMuonMatApprox
Definition: TimedExtrapolator.h:355
Trk::TimedExtrapolator::m_stopWithUpdateZero
BooleanProperty m_stopWithUpdateZero
Definition: TimedExtrapolator.h:332
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:312
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:451
Trk::ParamsNextVolume
Definition: TimedExtrapolator.h:111
Trk::TimedExtrapolator::Cache::m_methodSequence
int m_methodSequence
Definition: TimedExtrapolator.h:418
Trk::TimedExtrapolator::m_fastField
BooleanProperty m_fastField
Definition: TimedExtrapolator.h:435
MagneticFieldProperties.h
Trk::ParticleHypothesis
ParticleHypothesis
Definition: ParticleHypothesis.h:28
Trk::TimedExtrapolator::m_meotpIndex
UnsignedIntegerProperty m_meotpIndex
Definition: TimedExtrapolator.h:323
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:2047
Trk::TimedExtrapolator::Cache::m_parametersAtBoundary
ParamsNextVolume m_parametersAtBoundary
return helper for parameters and boundary
Definition: TimedExtrapolator.h:394
Trk::TimedExtrapolator::Cache::m_trLays
std::vector< std::pair< const Trk::Surface *, double > > m_trLays
Definition: TimedExtrapolator.h:429
Trk::TimedExtrapolator::m_resolveActive
BooleanProperty m_resolveActive
Definition: TimedExtrapolator.h:357
Trk::TimedExtrapolator::m_robustSampling
BooleanProperty m_robustSampling
Definition: TimedExtrapolator.h:351
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:193
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
Definition: TimedExtrapolator.h:295
Trk::TimedExtrapolator::m_printHelpOutputAtInitialize
BooleanProperty m_printHelpOutputAtInitialize
Definition: TimedExtrapolator.h:362
Trk::BoundaryTrackParameters::exitVol
const TrackingVolume * exitVol
Definition: TimedExtrapolator.h:76
Trk::TimedExtrapolator::TimedExtrapolator
TimedExtrapolator(const std::string &, const std::string &, const IInterface *)
Constructor.
Definition: TimedExtrapolator.cxx:56
Trk::TimedExtrapolator::m_navigationBreakDetails
BooleanProperty m_navigationBreakDetails
Definition: TimedExtrapolator.h:369
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:464
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:1214
Trk::pion
@ pion
Definition: ParticleHypothesis.h:32
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:428
Trk::TimedExtrapolator::Cache::m_currentDense
const Trk::TrackingVolume * m_currentDense
Definition: TimedExtrapolator.h:401
Trk::TimedExtrapolator::m_printRzOutput
BooleanProperty m_printRzOutput
Definition: TimedExtrapolator.h:363
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:391
Trk::TimedExtrapolator::m_subPropagators
std::vector< const IPropagator * > m_subPropagators
Propagators to chose from (steered by signature)
Definition: TimedExtrapolator.h:310
Trk::TimedExtrapolator::m_useDenseVolumeDescription
BooleanProperty m_useDenseVolumeDescription
Definition: TimedExtrapolator.h:352
Trk::TimedExtrapolator::m_maxNavigSurf
unsigned int m_maxNavigSurf
Definition: TimedExtrapolator.h:373
Trk::ParametersBase
Definition: ParametersBase.h:55
Trk::TimedExtrapolator::Cache::m_navigBoundaries
std::vector< DestSurf > m_navigBoundaries
Definition: TimedExtrapolator.h:411
Trk::DestSurf
std::pair< const Surface *, BoundaryCheck > DestSurf
typedef for input surfaces, boundary check
Definition: IPropagator.h:45
Trk::TimeLimit
Definition: HelperStructs.h:58
columnar::final
CM final
Definition: ColumnAccessor.h:106
Trk::TimedExtrapolator::m_propNames
StringArrayProperty m_propNames
Definition: TimedExtrapolator.h:316
Trk::TimedExtrapolator::momentumOutput
static std::string momentumOutput(const Amg::Vector3D &mom)
For the output - global momentum.
Definition: TimedExtrapolator.cxx:1226
Trk::TimedExtrapolator::m_updators
ToolHandleArray< ITimedMatEffUpdator > m_updators
Definition: TimedExtrapolator.h:300
beamspotman.dir
string dir
Definition: beamspotman.py:621
Trk::TimedExtrapolator::Cache::m_navigSurfs
std::vector< std::pair< const Trk::Surface *, Trk::BoundaryCheck > > m_navigSurfs
Definition: TimedExtrapolator.h:425
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:239
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:272
Trk::TimedExtrapolator::m_fieldProperties
Trk::MagneticFieldProperties m_fieldProperties
Definition: TimedExtrapolator.h:436
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:1337
BoundarySurfaceFace.h
Trk::TimedExtrapolator::Cache::Cache
Cache(unsigned int max_navig_surf=1000.)
Definition: TimedExtrapolator.h:378
Trk::PathLimit
Definition: HelperStructs.h:34
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
Definition: TimedExtrapolator.h:302
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:16
BoundarySurface.h
Trk::ITimedMatEffUpdator
Definition: ITimedMatEffUpdator.h:43
Trk::TimedExtrapolator::Cache::m_navigLays
std::vector< std::pair< const Trk::TrackingVolume *, const Trk::Layer * > > m_navigLays
Definition: TimedExtrapolator.h:407
Trk::DestBound::bIndex
unsigned int bIndex
Definition: TimedExtrapolator.h:63
TrackingVolume.h
Trk::IdentifiedIntersection
Definition: TimedExtrapolator.h:90
ITimedMatEffUpdator.h
Trk::TimedExtrapolator::Cache::~Cache
~Cache()
Definition: TimedExtrapolator.h:383
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_updatNames
StringArrayProperty m_updatNames
Definition: TimedExtrapolator.h:318
INavigator.h
Trk::BoundaryCheck
Definition: BoundaryCheck.h:51
Trk::TimedExtrapolator::Cache
Definition: TimedExtrapolator.h:377
PlaneSurface.h
Trk::TimedExtrapolator::m_navigationStatistics
BooleanProperty m_navigationStatistics
Definition: TimedExtrapolator.h:367
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:398
Trk::TimedExtrapolator::m_maxNavigVol
unsigned int m_maxNavigVol
Definition: TimedExtrapolator.h:374
Trk::TimedExtrapolator::finalize
virtual StatusCode finalize() override
AlgTool finalize method.
Definition: TimedExtrapolator.cxx:187
Trk::TimedExtrapolator::m_caloMsSecondary
BooleanProperty m_caloMsSecondary
Definition: TimedExtrapolator.h:346
Track
Definition: TriggerChamberClusterOnTrackCreator.h:21
Trk::undefinedFace
@ undefinedFace
Definition: BoundarySurfaceFace.h:59
Trk::TimedExtrapolator::m_includeMaterialEffects
BooleanProperty m_includeMaterialEffects
Definition: TimedExtrapolator.h:328
Trk::TimedExtrapolator::Cache::m_layerResolved
unsigned int m_layerResolved
Definition: TimedExtrapolator.h:404
Trk::Material
Definition: Material.h:117
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:412
Trk::TimedExtrapolator::Cache::m_staticBoundaries
std::vector< DestSurf > m_staticBoundaries
Definition: TimedExtrapolator.h:408
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:79
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:1041
Trk::TrackingVolume
Definition: TrackingVolume.h:119
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:1268
Trk::TimedExtrapolator::Cache::m_time
double m_time
Definition: TimedExtrapolator.h:414
Trk::ParamsNextVolume::exitFace
BoundarySurfaceFace exitFace
Definition: TimedExtrapolator.h:116
Trk::TimedExtrapolator::Cache::m_highestVolume
const Trk::TrackingVolume * m_highestVolume
Definition: TimedExtrapolator.h:402
Trk::TimedExtrapolator::Cache::m_currentStatic
const Trk::TrackingVolume * m_currentStatic
Definition: TimedExtrapolator.h:400
Trk::TimedExtrapolator::m_initialLayerAttempts
UnsignedIntegerProperty m_initialLayerAttempts
Definition: TimedExtrapolator.h:338
Trk::Layer
Definition: Layer.h:72
Trk::AlignableTrackingVolume
Definition: AlignableTrackingVolume.h:36