Analysis Software
Documentation for sPHENIX simulation software
|
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>
Classes | |
struct | Config |
struct | State |
State struct. More... | |
Public Member Functions | |
ImpactPointEstimator (const Config &cfg) | |
Constructor. | |
Result< double > | calculateDistance (const GeometryContext &gctx, const BoundTrackParameters &trkParams, const Vector3 &vtxPos, State &state) const |
Calculates 3D distance between a track and a vertex. | |
Result< BoundTrackParameters > | 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. | |
template<unsigned int nDim> | |
Result< double > | 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. | |
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< ImpactParametersAndSigma > | 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. | |
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< double > | 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) | |
Private Member Functions | |
Result< double > | performNewtonOptimization (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. | |
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
|
inline |
Constructor.
cfg | Configuration object |
Definition at line 89 of file ImpactPointEstimator.hpp.
View newest version in sPHENIX GitHub at line 89 of file ImpactPointEstimator.hpp
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.
gctx | The geometry context |
trkParams | Track parameters |
vtxPos | 3D position to calculate the distance to |
state | The state object |
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.
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.
gctx | The geometry context |
mctx | The magnetic field context |
trkParams | Track parameters |
vtxPos | Reference position (vertex) |
state | The state object |
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.
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)
track | Track to estimate the IP from |
vtx | Vertex the track belongs to |
direction | The direction |
gctx | The geometry context |
mctx | The magnetic field context |
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().
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.
nDim | Number of dimensions used to compute compatibility |
gctx | Geometry context |
trkParams | Track parameters |
vtxPos | Vertex position |
state | The 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.
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.
track | Track whose impact parameters are calculated |
vtx | Vertex corresponding to the track |
gctx | The geometry context |
mctx | The magnetic field context |
calculateTimeIP | If 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.
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.
track | Track to estimate the IP from |
vtx | Vertex the track belongs to |
direction | The direction |
gctx | The geometry context |
mctx | The magnetic field context |
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.
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.
nDim | Number of dimensions used to compute compatibility |
gctx | The Geometry context |
trkParams | Track parameters at point of closest approach in 3D as retrieved by estimate3DImpactParameters |
vertexPos | The vertex position |
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().
|
private |
Performs a Newton approximation to retrieve a point of closest approach in 3D to a reference position.
helixCenter | Position of the helix center |
vtxPos | Vertex position |
phi | Azimuthal momentum angle |
theta | Polar momentum angle (constant along the track) |
rho | Signed helix radius |
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.
|
private |
Configuration object.
Definition at line 210 of file ImpactPointEstimator.hpp.
View newest version in sPHENIX GitHub at line 210 of file ImpactPointEstimator.hpp