Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::ImpactPointEstimator< input_track_t, propagator_t, propagator_options_t > Class Template Reference

Estimator for impact point calculations A description of the underlying mathematics can be found here: https://github.com/acts-project/acts/pull/2506 TODO: Upload reference at a better place. More...

#include <acts/blob/sPHENIX/Core/include/Acts/Vertexing/ImpactPointEstimator.hpp>

+ Collaboration diagram for Acts::ImpactPointEstimator< input_track_t, propagator_t, propagator_options_t >:

Classes

struct  Config
 
struct  State
 State struct. More...
 

Public Member Functions

 ImpactPointEstimator (const Config &cfg)
 Constructor.
 
Result< doublecalculateDistance (const GeometryContext &gctx, const BoundTrackParameters &trkParams, const Vector3 &vtxPos, State &state) const
 Calculates 3D distance between a track and a vertex.
 
Result< BoundTrackParametersestimate3DImpactParameters (const GeometryContext &gctx, const Acts::MagneticFieldContext &mctx, const BoundTrackParameters &trkParams, const Vector3 &vtxPos, State &state) const
 Estimates the track parameters at the 3D PCA (i.e., a point of minimal 3D distance) to a vertex. The track parameters are defined wrt a reference plane that has its origin at the vertex position and whose z-axis points in the direction of the track momentum. The plane's x-axis points approximately from the vertex to the 3D PCA (it is only approximate because we force it to be orthogonal to the z-axis). The y-axis is calculated as a cross product between x- and z-axis.
 
template<unsigned int nDim>
Result< doublegetVertexCompatibility (const GeometryContext &gctx, const BoundTrackParameters *trkParams, const ActsVector< nDim > &vertexPos) const
 Estimates the compatibility of a track to a vertex based on their 3D (if nDim = 3) or 4D (if nDim = 4) distance and the track covariance.
 
template<unsigned int nDim>
Result< std::pair
< Acts::ActsVector< nDim >
, Acts::Vector3 > > 
getDistanceAndMomentum (const GeometryContext &gctx, const BoundTrackParameters &trkParams, const ActsVector< nDim > &vtxPos, State &state) const
 Calculate the distance between a track and a vertex by finding the corresponding 3D PCA. Returns also the momentum direction at the 3D PCA. The template parameter nDim determines whether we calculate the 3D distance (nDim = 3) or the 4D distance (nDim = 4) to the 3D PCA.
 
Result< ImpactParametersAndSigmagetImpactParameters (const BoundTrackParameters &track, const Vertex< input_track_t > &vtx, const GeometryContext &gctx, const MagneticFieldContext &mctx, bool calculateTimeIP=false) const
 Calculates the impact parameters of a track w.r.t. a vertex. The corresponding errors are approximated by summing the variances of the track and the vertex.
 
Result< std::pair< double,
double > > 
getLifetimeSignOfTrack (const BoundTrackParameters &track, const Vertex< input_track_t > &vtx, const Acts::Vector3 &direction, const GeometryContext &gctx, const MagneticFieldContext &mctx) const
 Estimates the sign of the 2D and Z lifetime of a given track w.r.t. a vertex and a direction (e.g. a jet direction) by propagating the trajectory state towards the vertex position and computing the scalar product with the direction vector.
 
Result< doubleget3DLifetimeSignOfTrack (const BoundTrackParameters &track, const Vertex< input_track_t > &vtx, const Acts::Vector3 &direction, const GeometryContext &gctx, const MagneticFieldContext &mctx) const
 Estimates the sign of the 3D lifetime of a given track w.r.t. a vertex and a direction (e.g. a jet direction)
 

Private Member Functions

Result< doubleperformNewtonOptimization (const Vector3 &helixCenter, const Vector3 &vtxPos, double phi, double theta, double rho) const
 Performs a Newton approximation to retrieve a point of closest approach in 3D to a reference position.
 

Private Attributes

const Config m_cfg
 Configuration object.
 

Detailed Description

template<typename input_track_t, typename propagator_t, typename propagator_options_t = PropagatorOptions<>>
class Acts::ImpactPointEstimator< input_track_t, propagator_t, propagator_options_t >

Estimator for impact point calculations A description of the underlying mathematics can be found here: https://github.com/acts-project/acts/pull/2506 TODO: Upload reference at a better place.

Definition at line 47 of file ImpactPointEstimator.hpp.

View newest version in sPHENIX GitHub at line 47 of file ImpactPointEstimator.hpp

Constructor & Destructor Documentation

template<typename input_track_t, typename propagator_t, typename propagator_options_t = PropagatorOptions<>>
Acts::ImpactPointEstimator< input_track_t, propagator_t, propagator_options_t >::ImpactPointEstimator ( const Config cfg)
inline

Constructor.

Parameters
cfgConfiguration object

Definition at line 89 of file ImpactPointEstimator.hpp.

View newest version in sPHENIX GitHub at line 89 of file ImpactPointEstimator.hpp

Member Function Documentation

template<typename input_track_t , typename propagator_t , typename propagator_options_t >
Acts::Result< double > Acts::ImpactPointEstimator< input_track_t, propagator_t, propagator_options_t >::calculateDistance ( const GeometryContext gctx,
const BoundTrackParameters trkParams,
const Vector3 vtxPos,
State state 
) const

Calculates 3D distance between a track and a vertex.

Parameters
gctxThe geometry context
trkParamsTrack parameters
vtxPos3D position to calculate the distance to
stateThe state object
Returns
Distance

Definition at line 18 of file ImpactPointEstimator.ipp.

View newest version in sPHENIX GitHub at line 18 of file ImpactPointEstimator.ipp

References gctx, and filter::state.

template<typename input_track_t , typename propagator_t , typename propagator_options_t >
Acts::Result< Acts::BoundTrackParameters > Acts::ImpactPointEstimator< input_track_t, propagator_t, propagator_options_t >::estimate3DImpactParameters ( const GeometryContext gctx,
const Acts::MagneticFieldContext mctx,
const BoundTrackParameters trkParams,
const Vector3 vtxPos,
State state 
) const

Estimates the track parameters at the 3D PCA (i.e., a point of minimal 3D distance) to a vertex. The track parameters are defined wrt a reference plane that has its origin at the vertex position and whose z-axis points in the direction of the track momentum. The plane's x-axis points approximately from the vertex to the 3D PCA (it is only approximate because we force it to be orthogonal to the z-axis). The y-axis is calculated as a cross product between x- and z-axis.

Parameters
gctxThe geometry context
mctxThe magnetic field context
trkParamsTrack parameters
vtxPosReference position (vertex)
stateThe state object
Returns
Track parameters at the 3D PCA

Definition at line 35 of file ImpactPointEstimator.ipp.

View newest version in sPHENIX GitHub at line 35 of file ImpactPointEstimator.ipp

References closest(), physmon_track_finding_ttbar::deltaR, gctx, m_cfg(), and filter::state.

+ Here is the call graph for this function:

template<typename input_track_t, typename propagator_t , typename propagator_options_t >
Acts::Result< double > Acts::ImpactPointEstimator< input_track_t, propagator_t, propagator_options_t >::get3DLifetimeSignOfTrack ( const BoundTrackParameters track,
const Vertex< input_track_t > &  vtx,
const Acts::Vector3 direction,
const GeometryContext gctx,
const MagneticFieldContext mctx 
) const

Estimates the sign of the 3D lifetime of a given track w.r.t. a vertex and a direction (e.g. a jet direction)

Parameters
trackTrack to estimate the IP from
vtxVertex the track belongs to
directionThe direction
gctxThe geometry context
mctxThe magnetic field context
Returns
The value of the 3D lifetime

Definition at line 497 of file ImpactPointEstimator.ipp.

View newest version in sPHENIX GitHub at line 497 of file ImpactPointEstimator.ipp

References m_cfg(), Acts::Vertex< input_track_t >::position(), and sign().

+ Here is the call graph for this function:

template<typename input_track_t , typename propagator_t , typename propagator_options_t >
template<unsigned int nDim>
Acts::Result< std::pair< Acts::ActsVector< nDim >, Acts::Vector3 > > Acts::ImpactPointEstimator< input_track_t, propagator_t, propagator_options_t >::getDistanceAndMomentum ( const GeometryContext gctx,
const BoundTrackParameters trkParams,
const ActsVector< nDim > &  vtxPos,
State state 
) const

Calculate the distance between a track and a vertex by finding the corresponding 3D PCA. Returns also the momentum direction at the 3D PCA. The template parameter nDim determines whether we calculate the 3D distance (nDim = 3) or the 4D distance (nDim = 4) to the 3D PCA.

Note
For straight tracks we use an analytical solution; for helical tracks we use the Newton method.
Template Parameters
nDimNumber of dimensions used to compute compatibility
Note
If nDim = 3 we only consider spatial dimensions; if nDim = 4, we also consider time. Other values are not allowed.
Parameters
gctxGeometry context
trkParamsTrack parameters
vtxPosVertex position
stateThe state object

Definition at line 235 of file ImpactPointEstimator.ipp.

View newest version in sPHENIX GitHub at line 235 of file ImpactPointEstimator.ipp

References Acts::Surface::center(), physmon_track_finding_ttbar::deltaR, Acts::GenericBoundTrackParameters< particle_hypothesis_t >::direction(), Acts::eBoundLoc0, Acts::eBoundLoc1, Acts::eBoundPhi, Acts::eBoundQOverP, Acts::eBoundTheta, Acts::eBoundTime, eZ, Acts::ImpactPointEstimator< input_track_t, propagator_t, propagator_options_t >::State::fieldCache, m_cfg(), merge_hashes::p, Acts::GenericBoundTrackParameters< particle_hypothesis_t >::parameters(), Acts::GenericBoundTrackParameters< particle_hypothesis_t >::particleHypothesis(), ActsTests::PropagationDatasets::phi, Acts::GenericBoundTrackParameters< particle_hypothesis_t >::position(), Acts::GenericBoundTrackParameters< particle_hypothesis_t >::referenceSurface(), rho, and ActsTests::PropagationDatasets::theta.

+ Here is the call graph for this function:

template<typename input_track_t, typename propagator_t , typename propagator_options_t >
Acts::Result< Acts::ImpactParametersAndSigma > Acts::ImpactPointEstimator< input_track_t, propagator_t, propagator_options_t >::getImpactParameters ( const BoundTrackParameters track,
const Vertex< input_track_t > &  vtx,
const GeometryContext gctx,
const MagneticFieldContext mctx,
bool  calculateTimeIP = false 
) const

Calculates the impact parameters of a track w.r.t. a vertex. The corresponding errors are approximated by summing the variances of the track and the vertex.

Parameters
trackTrack whose impact parameters are calculated
vtxVertex corresponding to the track
gctxThe geometry context
mctxThe magnetic field context
calculateTimeIPIf true, the difference in time is computed

Definition at line 370 of file ImpactPointEstimator.ipp.

View newest version in sPHENIX GitHub at line 370 of file ImpactPointEstimator.ipp

References closest(), Acts::Vertex< input_track_t >::covariance(), Acts::ImpactParametersAndSigma::d0, Acts::ImpactParametersAndSigma::deltaT, Acts::GenericBoundTrackParameters< particle_hypothesis_t >::direction(), Acts::eTime, Acts::eX, Acts::eY, eZ, Acts::Vertex< input_track_t >::fullCovariance(), m_cfg(), Acts::Vertex< input_track_t >::position(), Acts::GenericBoundTrackParameters< particle_hypothesis_t >::position(), Acts::ImpactParametersAndSigma::sigmaD0, Acts::ImpactParametersAndSigma::sigmaDeltaT, Acts::ImpactParametersAndSigma::sigmaZ0, Acts::Vertex< input_track_t >::time(), and Acts::ImpactParametersAndSigma::z0.

+ Here is the call graph for this function:

template<typename input_track_t, typename propagator_t , typename propagator_options_t >
Acts::Result< std::pair< double, double > > Acts::ImpactPointEstimator< input_track_t, propagator_t, propagator_options_t >::getLifetimeSignOfTrack ( const BoundTrackParameters track,
const Vertex< input_track_t > &  vtx,
const Acts::Vector3 direction,
const GeometryContext gctx,
const MagneticFieldContext mctx 
) const

Estimates the sign of the 2D and Z lifetime of a given track w.r.t. a vertex and a direction (e.g. a jet direction) by propagating the trajectory state towards the vertex position and computing the scalar product with the direction vector.

Parameters
trackTrack to estimate the IP from
vtxVertex the track belongs to
directionThe direction
gctxThe geometry context
mctxThe magnetic field context
Returns
A pair holding the sign for the 2D and Z lifetimes

Definition at line 453 of file ImpactPointEstimator.ipp.

View newest version in sPHENIX GitHub at line 453 of file ImpactPointEstimator.ipp

References Acts::eBoundLoc0, Acts::eBoundLoc1, Acts::eBoundPhi, Acts::eBoundTheta, eta, m_cfg(), ActsTests::PropagationDatasets::phi, Acts::Vertex< input_track_t >::position(), and ActsTests::PropagationDatasets::theta.

+ Here is the call graph for this function:

template<typename input_track_t , typename propagator_t , typename propagator_options_t >
template<unsigned int nDim>
Acts::Result< double > Acts::ImpactPointEstimator< input_track_t, propagator_t, propagator_options_t >::getVertexCompatibility ( const GeometryContext gctx,
const BoundTrackParameters trkParams,
const ActsVector< nDim > &  vertexPos 
) const

Estimates the compatibility of a track to a vertex based on their 3D (if nDim = 3) or 4D (if nDim = 4) distance and the track covariance.

Note
Confusingly, a smaller compatibility means that a track is more compatible.
Template Parameters
nDimNumber of dimensions used to compute compatibility
Note
If nDim = 3 we only consider spatial dimensions; if nDim = 4, we also consider time. Other values are not allowed.
Parameters
gctxThe Geometry context
trkParamsTrack parameters at point of closest approach in 3D as retrieved by estimate3DImpactParameters
vertexPosThe vertex position
Returns
The compatibility value

Definition at line 109 of file ImpactPointEstimator.ipp.

View newest version in sPHENIX GitHub at line 109 of file ImpactPointEstimator.ipp

References Acts::GenericBoundTrackParameters< particle_hypothesis_t >::covariance(), Acts::eBoundTime, Acts::eX, Acts::eY, Acts::GenericBoundTrackParameters< particle_hypothesis_t >::impactParameterCovariance(), Acts::GenericBoundTrackParameters< particle_hypothesis_t >::parameters(), Acts::GenericBoundTrackParameters< particle_hypothesis_t >::referenceSurface(), Acts::GenericBoundTrackParameters< particle_hypothesis_t >::spatialImpactParameterCovariance(), and Acts::Surface::transform().

+ Here is the call graph for this function:

template<typename input_track_t , typename propagator_t , typename propagator_options_t >
Acts::Result< double > Acts::ImpactPointEstimator< input_track_t, propagator_t, propagator_options_t >::performNewtonOptimization ( const Vector3 helixCenter,
const Vector3 vtxPos,
double  phi,
double  theta,
double  rho 
) const
private

Performs a Newton approximation to retrieve a point of closest approach in 3D to a reference position.

Parameters
helixCenterPosition of the helix center
vtxPosVertex position
phiAzimuthal momentum angle
Note
Modifying phi corresponds to moving along the track. This function optimizes phi until we reach a 3D PCA.
Parameters
thetaPolar momentum angle (constant along the track)
rhoSigned helix radius
Returns
Phi value at 3D PCA

Definition at line 178 of file ImpactPointEstimator.ipp.

View newest version in sPHENIX GitHub at line 178 of file ImpactPointEstimator.ipp

References deltaPhi(), m_cfg(), nIter, and ActsTests::PropagationDatasets::phi.

+ Here is the call graph for this function:

Member Data Documentation

template<typename input_track_t, typename propagator_t, typename propagator_options_t = PropagatorOptions<>>
const Config Acts::ImpactPointEstimator< input_track_t, propagator_t, propagator_options_t >::m_cfg
private

Configuration object.

Definition at line 210 of file ImpactPointEstimator.hpp.

View newest version in sPHENIX GitHub at line 210 of file ImpactPointEstimator.hpp


The documentation for this class was generated from the following files: