EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::SingleBoundTrackParameters< charge_t > Class Template Reference

#include <acts/blob/sPHENIX/Core/include/Acts/EventData/SingleBoundTrackParameters.hpp>

+ Inheritance diagram for Acts::SingleBoundTrackParameters< charge_t >:
+ Collaboration diagram for Acts::SingleBoundTrackParameters< charge_t >:

Public Types

using Scalar = BoundScalar
 
using ParametersVector = BoundVector
 
using CovarianceMatrix = BoundSymMatrix
 

Public Member Functions

 SingleBoundTrackParameters (std::shared_ptr< const Surface > surface, const ParametersVector &params, Scalar q, std::optional< CovarianceMatrix > cov=std::nullopt)
 
template<typename T = charge_t, std::enable_if_t< std::is_default_constructible_v< T >, int > = 0>
 SingleBoundTrackParameters (std::shared_ptr< const Surface > surface, const ParametersVector &params, std::optional< CovarianceMatrix > cov=std::nullopt)
 
 SingleBoundTrackParameters (std::shared_ptr< const Surface > surface, const GeometryContext &geoCtx, const Vector4D &pos4, const Vector3D &dir, Scalar p, Scalar q, std::optional< CovarianceMatrix > cov=std::nullopt)
 
template<typename T = charge_t, std::enable_if_t< std::is_default_constructible_v< T >, int > = 0>
 SingleBoundTrackParameters (std::shared_ptr< const Surface > surface, const GeometryContext &geoCtx, const Vector4D &pos4, const Vector3D &dir, Scalar qOverP, std::optional< CovarianceMatrix > cov=std::nullopt)
 
const FullBoundParameterSetgetParameterSet () const
 Access the parameter set holding the parameters vector and covariance.
 
ParametersVector parameters () const
 Parameters vector.
 
const std::optional
< CovarianceMatrix > & 
covariance () const
 Optional covariance matrix.
 
template<BoundIndices kIndex>
Scalar get () const
 
template<BoundIndices kIndex>
Scalar uncertainty () const
 
Vector4D fourPosition (const GeometryContext &geoCtx) const
 
Vector3D position (const GeometryContext &geoCtx) const
 
Scalar time () const
 Time coordinate.
 
Vector3D unitDirection () const
 Unit direction three-vector, i.e. the normalized momentum three-vector.
 
Scalar absoluteMomentum () const
 Absolute momentum.
 
Scalar transverseMomentum () const
 Transverse momentum.
 
Vector3D momentum () const
 Momentum three-vector.
 
constexpr Scalar charge () const
 Particle electric charge.
 
const SurfacereferenceSurface () const
 Reference surface onto which the parameters are bound.
 
RotationMatrix3D referenceFrame (const GeometryContext &geoCtx) const
 

Private Attributes

FullBoundParameterSet m_paramSet
 parameter set holding parameters vector and covariance.
 
std::shared_ptr< const Surfacem_surface
 reference surface
 
charge_t m_chargeInterpreter
 

Friends

bool operator== (const SingleBoundTrackParameters &lhs, const SingleBoundTrackParameters &rhs)
 Compare two bound parameters for equality.
 
bool operator!= (const SingleBoundTrackParameters &lhs, const SingleBoundTrackParameters &rhs)
 Compare two bound parameters for inequality.
 
std::ostream & operator<< (std::ostream &os, const SingleBoundTrackParameters &tp)
 Print information to the output stream.
 

Detailed Description

template<class charge_t>
class Acts::SingleBoundTrackParameters< charge_t >

Track parameters bound to a reference surface for a single track.

Template Parameters
charge_tHelper type to interpret the particle charge/momentum

This is intended as a user-facing data class that adds additional accessors and charge/momentum interpretation on top of the pure parameters vector. All parameters and their corresponding covariance matrix are stored in bound parametrization. The specific definition of the local spatial parameters is defined by the associated surface.

Note
This class holds shared ownership on its reference surface.

Definition at line 36 of file SingleBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 36 of file SingleBoundTrackParameters.hpp

Member Typedef Documentation

template<class charge_t>
using Acts::SingleBoundTrackParameters< charge_t >::CovarianceMatrix = BoundSymMatrix

Definition at line 40 of file SingleBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 40 of file SingleBoundTrackParameters.hpp

template<class charge_t>
using Acts::SingleBoundTrackParameters< charge_t >::ParametersVector = BoundVector

Definition at line 39 of file SingleBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 39 of file SingleBoundTrackParameters.hpp

template<class charge_t>
using Acts::SingleBoundTrackParameters< charge_t >::Scalar = BoundScalar

Definition at line 38 of file SingleBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 38 of file SingleBoundTrackParameters.hpp

Constructor & Destructor Documentation

template<class charge_t>
Acts::SingleBoundTrackParameters< charge_t >::SingleBoundTrackParameters ( std::shared_ptr< const Surface surface,
const ParametersVector params,
Scalar  q,
std::optional< CovarianceMatrix cov = std::nullopt 
)
inline

Construct from a parameters vector on the surface and particle charge.

Parameters
surfaceReference surface the parameters are defined on
paramsBound parameters vector
qParticle charge
covBound parameters covariance matrix

In principle, only the charge magnitude is needed her to allow unambigous extraction of the absolute momentum. The particle charge is required as an input here to be consistent with the other constructors below that that also take the charge as an input. The charge sign is only used in debug builds to check for consistency with the q/p parameter.

Definition at line 54 of file SingleBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 54 of file SingleBoundTrackParameters.hpp

template<class charge_t>
template<typename T = charge_t, std::enable_if_t< std::is_default_constructible_v< T >, int > = 0>
Acts::SingleBoundTrackParameters< charge_t >::SingleBoundTrackParameters ( std::shared_ptr< const Surface surface,
const ParametersVector params,
std::optional< CovarianceMatrix cov = std::nullopt 
)
inline

Construct from a parameters vector on the surface.

Parameters
surfaceReference surface the parameters are defined on
paramsBound parameters vector
covBound parameters covariance matrix

This constructor is only available if there are no potential charge ambiguities, i.e. the charge type is default-constructible.

Definition at line 75 of file SingleBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 75 of file SingleBoundTrackParameters.hpp

template<class charge_t>
Acts::SingleBoundTrackParameters< charge_t >::SingleBoundTrackParameters ( std::shared_ptr< const Surface surface,
const GeometryContext geoCtx,
const Vector4D pos4,
const Vector3D dir,
Scalar  p,
Scalar  q,
std::optional< CovarianceMatrix cov = std::nullopt 
)
inline

Construct from four-position, direction, absolute momentum, and charge.

Parameters
surfaceReference surface the parameters are defined on
geoCtxGeometry context for the local-to-global transformation
pos4Track position/time four-vector
dirTrack direction three-vector; normalization is ignored.
pAbsolute momentum
qParticle charge
covBound parameters covariance matrix

Definition at line 93 of file SingleBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 93 of file SingleBoundTrackParameters.hpp

template<class charge_t>
template<typename T = charge_t, std::enable_if_t< std::is_default_constructible_v< T >, int > = 0>
Acts::SingleBoundTrackParameters< charge_t >::SingleBoundTrackParameters ( std::shared_ptr< const Surface surface,
const GeometryContext geoCtx,
const Vector4D pos4,
const Vector3D dir,
Scalar  qOverP,
std::optional< CovarianceMatrix cov = std::nullopt 
)
inline

Construct from four-position, direction, and charge-over-momentum.

Parameters
surfaceReference surface the parameters are defined on
geoCtxGeometry context for the local-to-global transformation
pos4Track position/time four-vector
dirTrack direction three-vector; normalization is ignored.
qOverPCharge-over-momentum-like parameter
covBound parameters covariance matrix

This constructor is only available if there are no potential charge ambiguities, i.e. the charge type is default-constructible. The position must be located on the surface.

Definition at line 122 of file SingleBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 122 of file SingleBoundTrackParameters.hpp

Member Function Documentation

template<class charge_t>
Scalar Acts::SingleBoundTrackParameters< charge_t >::absoluteMomentum ( ) const
inline

Absolute momentum.

Definition at line 203 of file SingleBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 203 of file SingleBoundTrackParameters.hpp

Referenced by Acts::Test::BOOST_DATA_TEST_CASE(), PHTpcResiduals::calculateTpcResiduals(), checkParametersConsistency(), Acts::SingleBoundTrackParameters< SinglyCharged >::momentum(), and Acts::SingleBoundTrackParameters< SinglyCharged >::transverseMomentum().

+ Here is the caller graph for this function:

template<class charge_t>
constexpr Scalar Acts::SingleBoundTrackParameters< charge_t >::charge ( ) const
inline

Particle electric charge.

Definition at line 214 of file SingleBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 214 of file SingleBoundTrackParameters.hpp

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), and checkParametersConsistency().

+ Here is the caller graph for this function:

template<class charge_t>
Vector4D Acts::SingleBoundTrackParameters< charge_t >::fourPosition ( const GeometryContext geoCtx) const
inline

Space-time position four-vector.

Parameters
[in]geoCtxGeometry context for the local-to-global transformation

This uses the associated surface to transform the local position on the surface to globalcoordinates. This requires a geometry context to select the appropriate transformation and might be a computationally expensive operation.

Definition at line 172 of file SingleBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 172 of file SingleBoundTrackParameters.hpp

template<class charge_t>
template<BoundIndices kIndex>
Scalar Acts::SingleBoundTrackParameters< charge_t >::get ( ) const
inline

Access a single parameter value indentified by its index.

Template Parameters
kIndexTrack parameter index

Definition at line 151 of file SingleBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 151 of file SingleBoundTrackParameters.hpp

Referenced by Acts::HelicalTrackLinearizer< propagator_t, propagator_options_t >::linearizeTrack(), and Acts::Test::runTest().

+ Here is the caller graph for this function:

template<class charge_t>
const FullBoundParameterSet& Acts::SingleBoundTrackParameters< charge_t >::getParameterSet ( ) const
inline

Access the parameter set holding the parameters vector and covariance.

Definition at line 139 of file SingleBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 139 of file SingleBoundTrackParameters.hpp

template<class charge_t>
Vector3D Acts::SingleBoundTrackParameters< charge_t >::position ( const GeometryContext geoCtx) const
inline

Spatial position three-vector.

Parameters
[in]geoCtxGeometry context for the local-to-global transformation

This uses the associated surface to transform the local position on the surface to globalcoordinates. This requires a geometry context to select the appropriate transformation and might be a computationally expensive operation.

Definition at line 189 of file SingleBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 189 of file SingleBoundTrackParameters.hpp

Referenced by PHTpcResiduals::addTrackState(), Acts::Test::BOOST_AUTO_TEST_CASE(), Acts::Test::BOOST_DATA_TEST_CASE(), ActsTransformations::calculateDCA(), ActsEvaluator::calculateDCA(), PHTpcResiduals::calculateTpcResiduals(), checkParametersConsistency(), ActsEvaluator::evaluateTrackFits(), ActsTransformations::fillSvtxTrackStates(), Acts::ZScanVertexFinder< vfitter_t >::find(), Acts::HelicalTrackLinearizer< propagator_t, propagator_options_t >::linearizeTrack(), makeCurvilinearTransform(), ZCylinderSurfaceBuilder::operator()(), ZStrawSurfaceBuilder::operator()(), PHActsTrackProjection::propagateTrack(), Acts::SingleBoundTrackParameters< SinglyCharged >::referenceFrame(), PHActsVertexPropagator::updateSvtxTrack(), and PHActsTrackProjection::updateSvtxTrack().

+ Here is the caller graph for this function:

template<class charge_t>
RotationMatrix3D Acts::SingleBoundTrackParameters< charge_t >::referenceFrame ( const GeometryContext geoCtx) const
inline

Reference frame in which the local error is defined.

Parameters
[in]geoCtxGeometry context for the local-to-global transformation

For planar surfaces, this is the transformation local-to-global rotation matrix. For non-planar surfaces, it is the local-to-global rotation matrix of the tangential plane at the track position.

Definition at line 227 of file SingleBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 227 of file SingleBoundTrackParameters.hpp

template<class charge_t>
const Surface& Acts::SingleBoundTrackParameters< charge_t >::referenceSurface ( ) const
inline
template<class charge_t>
Scalar Acts::SingleBoundTrackParameters< charge_t >::time ( ) const
inline

Time coordinate.

Definition at line 196 of file SingleBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 196 of file SingleBoundTrackParameters.hpp

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), checkParametersConsistency(), and Acts::HelicalTrackLinearizer< propagator_t, propagator_options_t >::linearizeTrack().

+ Here is the caller graph for this function:

template<class charge_t>
Scalar Acts::SingleBoundTrackParameters< charge_t >::transverseMomentum ( ) const
inline

Transverse momentum.

Definition at line 207 of file SingleBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 207 of file SingleBoundTrackParameters.hpp

template<class charge_t>
template<BoundIndices kIndex>
Scalar Acts::SingleBoundTrackParameters< charge_t >::uncertainty ( ) const
inline

Access a single parameter uncertainty identified by its index.

Template Parameters
kIndexTrack parameter index
Return values
zeroif the track parameters have no associated covariance
parameterstandard deviation if the covariance is available

Definition at line 160 of file SingleBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 160 of file SingleBoundTrackParameters.hpp

template<class charge_t>
Vector3D Acts::SingleBoundTrackParameters< charge_t >::unitDirection ( ) const
inline

Unit direction three-vector, i.e. the normalized momentum three-vector.

Definition at line 199 of file SingleBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 199 of file SingleBoundTrackParameters.hpp

Referenced by checkParametersConsistency(), makeCurvilinearTransform(), and Acts::SingleBoundTrackParameters< SinglyCharged >::momentum().

+ Here is the caller graph for this function:

Friends And Related Function Documentation

template<class charge_t>
bool operator!= ( const SingleBoundTrackParameters< charge_t > &  lhs,
const SingleBoundTrackParameters< charge_t > &  rhs 
)
friend

Compare two bound parameters for inequality.

Definition at line 247 of file SingleBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 247 of file SingleBoundTrackParameters.hpp

template<class charge_t>
std::ostream& operator<< ( std::ostream &  os,
const SingleBoundTrackParameters< charge_t > &  tp 
)
friend

Print information to the output stream.

Definition at line 252 of file SingleBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 252 of file SingleBoundTrackParameters.hpp

template<class charge_t>
bool operator== ( const SingleBoundTrackParameters< charge_t > &  lhs,
const SingleBoundTrackParameters< charge_t > &  rhs 
)
friend

Compare two bound parameters for equality.

Definition at line 240 of file SingleBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 240 of file SingleBoundTrackParameters.hpp

Member Data Documentation

template<class charge_t>
charge_t Acts::SingleBoundTrackParameters< charge_t >::m_chargeInterpreter
private

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