ATLAS Offline Software
Public Member Functions | Public Attributes | List of all members
Trk::SolenoidalIntersector::Constants Struct Referencefinal

Constants of motion and other cached values. More...

#include <SolenoidalIntersector.h>

Inheritance diagram for Trk::SolenoidalIntersector::Constants:
Collaboration diagram for Trk::SolenoidalIntersector::Constants:

Public Member Functions

 Constants (const SolenoidParametrization &solpar, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double qOverP)
 
virtual std::unique_ptr< IIntersectionCache > clone () const override
 

Public Attributes

double m_sinTheta
 
double m_oneOverSinTheta
 
double m_cotTheta
 
double m_qOverPt
 
const SolenoidParametrizationm_solPar
 
Amg::Vector3D m_lastPosition
 
SolenoidParametrization::Parameters m_solParams
 

Detailed Description

Constants of motion and other cached values.

There is some data we want to persist across calls to intersectSurface() for a single trajectory. We do this by attaching this structure as a cache block to TrackSurfaceIntersection. Some of these are actually constants of motion for a helical trajectory. We also include here the solenoidal parametrization. This gets updated as we step through the field; including it here avoids a reevaluation at the start of the next call. We also include the position at the end of the stepping phase, m_lastPosition. This is because before after we finish stepping but before we return, we improve the estimate of the intersection by calculating the straight line intersection with the surface. But if we then calcuate a further intersection with the same trajectory, we want to start at the point at the end of the previous stepping, not the position we returned.

Definition at line 50 of file SolenoidalIntersector.h.

Constructor & Destructor Documentation

◆ Constants()

Trk::SolenoidalIntersector::Constants::Constants ( const SolenoidParametrization solpar,
const TrackSurfaceIntersection trackTrackSurfaceIntersection,
const double  qOverP 
)

Definition at line 22 of file SolenoidalIntersector.cxx.

25  : m_sinTheta (trackTrackSurfaceIntersection.direction().perp()),
27  m_cotTheta (trackTrackSurfaceIntersection.direction().z() * m_oneOverSinTheta),
29  m_solPar (solpar),
30  m_lastPosition (trackTrackSurfaceIntersection.position()),
31  m_solParams (solpar,
32  trackTrackSurfaceIntersection.position().perp(),
33  trackTrackSurfaceIntersection.position().z(),
34  m_cotTheta)
35 {
36 }

Member Function Documentation

◆ clone()

virtual std::unique_ptr<IIntersectionCache> Trk::SolenoidalIntersector::Constants::clone ( ) const
inlineoverridevirtual

Implements Trk::TrackSurfaceIntersection::IIntersectionCache.

Definition at line 54 of file SolenoidalIntersector.h.

54  {
55  return std::unique_ptr<IIntersectionCache>(new Constants(*this));
56  }

Member Data Documentation

◆ m_cotTheta

double Trk::SolenoidalIntersector::Constants::m_cotTheta

Definition at line 59 of file SolenoidalIntersector.h.

◆ m_lastPosition

Amg::Vector3D Trk::SolenoidalIntersector::Constants::m_lastPosition

Definition at line 62 of file SolenoidalIntersector.h.

◆ m_oneOverSinTheta

double Trk::SolenoidalIntersector::Constants::m_oneOverSinTheta

Definition at line 58 of file SolenoidalIntersector.h.

◆ m_qOverPt

double Trk::SolenoidalIntersector::Constants::m_qOverPt

Definition at line 60 of file SolenoidalIntersector.h.

◆ m_sinTheta

double Trk::SolenoidalIntersector::Constants::m_sinTheta

Definition at line 57 of file SolenoidalIntersector.h.

◆ m_solPar

const SolenoidParametrization& Trk::SolenoidalIntersector::Constants::m_solPar

Definition at line 61 of file SolenoidalIntersector.h.

◆ m_solParams

SolenoidParametrization::Parameters Trk::SolenoidalIntersector::Constants::m_solParams

Definition at line 63 of file SolenoidalIntersector.h.


The documentation for this struct was generated from the following files:
Trk::SolenoidalIntersector::Constants::m_lastPosition
Amg::Vector3D m_lastPosition
Definition: SolenoidalIntersector.h:62
Trk::SolenoidalIntersector::Constants::m_qOverPt
double m_qOverPt
Definition: SolenoidalIntersector.h:60
Trk::SolenoidalIntersector::Constants::m_sinTheta
double m_sinTheta
Definition: SolenoidalIntersector.h:57
Trk::SolenoidalIntersector::Constants::Constants
Constants(const SolenoidParametrization &solpar, const TrackSurfaceIntersection &trackTrackSurfaceIntersection, const double qOverP)
Definition: SolenoidalIntersector.cxx:22
Trk::SolenoidalIntersector::Constants::m_cotTheta
double m_cotTheta
Definition: SolenoidalIntersector.h:59
Trk::SolenoidalIntersector::Constants::m_oneOverSinTheta
double m_oneOverSinTheta
Definition: SolenoidalIntersector.h:58
Trk::qOverP
@ qOverP
perigee
Definition: ParamDefs.h:73
Trk::SolenoidalIntersector::Constants::m_solPar
const SolenoidParametrization & m_solPar
Definition: SolenoidalIntersector.h:61
Trk::SolenoidalIntersector::Constants::m_solParams
SolenoidParametrization::Parameters m_solParams
Definition: SolenoidalIntersector.h:63