Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::GenericBoundTrackParameters< particle_hypothesis_t > Class Template Reference

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

+ Inheritance diagram for Acts::GenericBoundTrackParameters< particle_hypothesis_t >:
+ Collaboration diagram for Acts::GenericBoundTrackParameters< particle_hypothesis_t >:

Public Types

using Scalar = ActsScalar
 
using ParametersVector = BoundVector
 
using CovarianceMatrix = BoundSquareMatrix
 
using ParticleHypothesis = particle_hypothesis_t
 

Public Member Functions

 GenericBoundTrackParameters (std::shared_ptr< const Surface > surface, const ParametersVector &params, std::optional< CovarianceMatrix > cov, ParticleHypothesis particleHypothesis)
 
template<typename other_particle_hypothesis_t >
 GenericBoundTrackParameters (const GenericBoundTrackParameters< other_particle_hypothesis_t > &other)
 Converts a bound track parameter with a different hypothesis.
 
 GenericBoundTrackParameters ()=delete
 Parameters are not default constructible due to the charge type.
 
 GenericBoundTrackParameters (const GenericBoundTrackParameters &)=default
 
 GenericBoundTrackParameters (GenericBoundTrackParameters &&)=default
 
 ~GenericBoundTrackParameters ()=default
 
GenericBoundTrackParametersoperator= (const GenericBoundTrackParameters &)=default
 
GenericBoundTrackParametersoperator= (GenericBoundTrackParameters &&)=default
 
ParametersVectorparameters ()
 Parameters vector.
 
const ParametersVectorparameters () const
 Parameters vector.
 
ActsVector< 2 > spatialImpactParameters () const
 Vector of spatial impact parameters (i.e., d0 and z0)
 
ActsVector< 3 > impactParameters () const
 Vector of spatial and temporal impact parameters (i.e., d0, z0, and t)
 
std::optional< CovarianceMatrix > & covariance ()
 Optional covariance matrix.
 
const std::optional
< CovarianceMatrix > & 
covariance () const
 Optional covariance matrix.
 
std::optional
< ActsSquareMatrix< 2 > > 
spatialImpactParameterCovariance () const
 Covariance matrix of the spatial impact parameters (i.e., of d0 and z0)
 
std::optional
< ActsSquareMatrix< 3 > > 
impactParameterCovariance () const
 
template<BoundIndices kIndex>
Scalar get () const
 
Vector2 localPosition () const
 Local spatial position two-vector.
 
Vector4 fourPosition (const GeometryContext &geoCtx) const
 
Vector3 position (const GeometryContext &geoCtx) const
 
Scalar time () const
 Time coordinate.
 
Scalar phi () const
 Phi direction.
 
Scalar theta () const
 Theta direction.
 
Scalar qOverP () const
 Charge over momentum.
 
Vector3 direction () const
 
Scalar absoluteMomentum () const
 Absolute momentum.
 
Scalar transverseMomentum () const
 Transverse momentum.
 
Vector3 momentum () const
 Momentum three-vector.
 
Scalar charge () const
 Particle electric charge.
 
const ParticleHypothesisparticleHypothesis () const
 Particle hypothesis.
 
const SurfacereferenceSurface () const
 Reference surface onto which the parameters are bound.
 
RotationMatrix3 referenceFrame (const GeometryContext &geoCtx) const
 

Static Public Member Functions

static Result
< GenericBoundTrackParameters
create (std::shared_ptr< const Surface > surface, const GeometryContext &geoCtx, const Vector4 &pos4, const Vector3 &dir, Scalar qOverP, std::optional< CovarianceMatrix > cov, ParticleHypothesis particleHypothesis, ActsScalar tolerance=s_onSurfaceTolerance)
 

Private Member Functions

void normalizePhiTheta ()
 Ensure phi and theta angles are within bounds.
 

Private Attributes

BoundVector m_params
 
std::optional< BoundSquareMatrixm_cov
 
std::shared_ptr< const Surfacem_surface
 reference surface
 
ParticleHypothesis m_particleHypothesis
 

Friends

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

Detailed Description

template<class particle_hypothesis_t>
class Acts::GenericBoundTrackParameters< particle_hypothesis_t >

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

Template Parameters
particle_hypothesis_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 37 of file GenericBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 37 of file GenericBoundTrackParameters.hpp

Member Typedef Documentation

template<class particle_hypothesis_t>
using Acts::GenericBoundTrackParameters< particle_hypothesis_t >::CovarianceMatrix = BoundSquareMatrix

Definition at line 41 of file GenericBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 41 of file GenericBoundTrackParameters.hpp

template<class particle_hypothesis_t>
using Acts::GenericBoundTrackParameters< particle_hypothesis_t >::ParametersVector = BoundVector

Definition at line 40 of file GenericBoundTrackParameters.hpp.

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

template<class particle_hypothesis_t>
using Acts::GenericBoundTrackParameters< particle_hypothesis_t >::ParticleHypothesis = particle_hypothesis_t

Definition at line 42 of file GenericBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 42 of file GenericBoundTrackParameters.hpp

template<class particle_hypothesis_t>
using Acts::GenericBoundTrackParameters< particle_hypothesis_t >::Scalar = ActsScalar

Definition at line 39 of file GenericBoundTrackParameters.hpp.

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

Constructor & Destructor Documentation

template<class particle_hypothesis_t>
Acts::GenericBoundTrackParameters< particle_hypothesis_t >::GenericBoundTrackParameters ( std::shared_ptr< const Surface surface,
const ParametersVector params,
std::optional< CovarianceMatrix cov,
ParticleHypothesis  particleHypothesis 
)
inline

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

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

In principle, only the charge magnitude is needed her to allow unambiguous 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 56 of file GenericBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 56 of file GenericBoundTrackParameters.hpp

template<class particle_hypothesis_t>
template<typename other_particle_hypothesis_t >
Acts::GenericBoundTrackParameters< particle_hypothesis_t >::GenericBoundTrackParameters ( const GenericBoundTrackParameters< other_particle_hypothesis_t > &  other)
inline

Converts a bound track parameter with a different hypothesis.

Definition at line 70 of file GenericBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 70 of file GenericBoundTrackParameters.hpp

template<class particle_hypothesis_t>
Acts::GenericBoundTrackParameters< particle_hypothesis_t >::GenericBoundTrackParameters ( )
delete

Parameters are not default constructible due to the charge type.

template<class particle_hypothesis_t>
Acts::GenericBoundTrackParameters< particle_hypothesis_t >::GenericBoundTrackParameters ( const GenericBoundTrackParameters< particle_hypothesis_t > &  )
default
template<class particle_hypothesis_t>
Acts::GenericBoundTrackParameters< particle_hypothesis_t >::GenericBoundTrackParameters ( GenericBoundTrackParameters< particle_hypothesis_t > &&  )
default
template<class particle_hypothesis_t>
Acts::GenericBoundTrackParameters< particle_hypothesis_t >::~GenericBoundTrackParameters ( )
default

Member Function Documentation

template<class particle_hypothesis_t>
Scalar Acts::GenericBoundTrackParameters< particle_hypothesis_t >::absoluteMomentum ( ) const
inline
template<class particle_hypothesis_t>
Scalar Acts::GenericBoundTrackParameters< particle_hypothesis_t >::charge ( ) const
inline

Particle electric charge.

Definition at line 230 of file GenericBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 230 of file GenericBoundTrackParameters.hpp

Referenced by Acts::detail::GsfActor< bethe_heitler_approx_t, traj_t >::applyBetheHeitler(), Acts::Test::BOOST_AUTO_TEST_CASE(), Acts::MultiComponentBoundTrackParameters::charge(), checkParametersConsistency(), PHCosmicsTrkFitter::printTrackSeed(), and PHActsTrkFitter::printTrackSeed().

+ Here is the caller graph for this function:

template<class particle_hypothesis_t>
const std::optional<CovarianceMatrix>& Acts::GenericBoundTrackParameters< particle_hypothesis_t >::covariance ( ) const
inline

Optional covariance matrix.

Definition at line 136 of file GenericBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 136 of file GenericBoundTrackParameters.hpp

template<class particle_hypothesis_t>
static Result<GenericBoundTrackParameters> Acts::GenericBoundTrackParameters< particle_hypothesis_t >::create ( std::shared_ptr< const Surface surface,
const GeometryContext geoCtx,
const Vector4 pos4,
const Vector3 dir,
Scalar  qOverP,
std::optional< CovarianceMatrix cov,
ParticleHypothesis  particleHypothesis,
ActsScalar  tolerance = s_onSurfaceTolerance 
)
inlinestatic

Factory to 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
qOverPCharge over momentum
covBound parameters covariance matrix
particleHypothesisParticle hypothesis
toleranceTolerance used for globalToLocal
Note
The returned result indicates whether the free parameters could successfully be converted to on-surface parameters.

Definition at line 90 of file GenericBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 90 of file GenericBoundTrackParameters.hpp

Referenced by PHCosmicsTrkFitter::loopTracks(), PHActsTrkFitter::loopTracks(), PHActsGSF::makeSeed(), and ActsPropagator::makeTrackParams().

+ Here is the caller graph for this function:

template<class particle_hypothesis_t>
Vector4 Acts::GenericBoundTrackParameters< particle_hypothesis_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 183 of file GenericBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 183 of file GenericBoundTrackParameters.hpp

Referenced by Acts::GenericCurvilinearTrackParameters< particle_hypothesis_t >::fourPosition(), and Acts::MultiComponentBoundTrackParameters::fourPosition().

+ Here is the caller graph for this function:

template<class particle_hypothesis_t>
template<BoundIndices kIndex>
Scalar Acts::GenericBoundTrackParameters< particle_hypothesis_t >::get ( ) const
inline

Access a single parameter value identified by its index.

Template Parameters
kIndexTrack parameter index

Definition at line 168 of file GenericBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 168 of file GenericBoundTrackParameters.hpp

Referenced by Acts::MultiComponentBoundTrackParameters::get().

+ Here is the caller graph for this function:

template<class particle_hypothesis_t>
std::optional<ActsSquareMatrix<3> > Acts::GenericBoundTrackParameters< particle_hypothesis_t >::impactParameterCovariance ( ) const
inline

Covariance matrix of the spatial and temporal impact parameters (i.e., of d0, z0, and t)

Definition at line 148 of file GenericBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 148 of file GenericBoundTrackParameters.hpp

Referenced by Acts::AdaptiveGridTrackDensity< spatialTrkGridSize, temporalTrkGridSize >::addTrack(), and Acts::ImpactPointEstimator< input_track_t, propagator_t, propagator_options_t >::getVertexCompatibility().

+ Here is the caller graph for this function:

template<class particle_hypothesis_t>
ActsVector<3> Acts::GenericBoundTrackParameters< particle_hypothesis_t >::impactParameters ( ) const
inline

Vector of spatial and temporal impact parameters (i.e., d0, z0, and t)

Definition at line 126 of file GenericBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 126 of file GenericBoundTrackParameters.hpp

Referenced by Acts::AdaptiveGridTrackDensity< spatialTrkGridSize, temporalTrkGridSize >::addTrack().

+ Here is the caller graph for this function:

template<class particle_hypothesis_t>
Vector2 Acts::GenericBoundTrackParameters< particle_hypothesis_t >::localPosition ( ) const
inline

Local spatial position two-vector.

Definition at line 173 of file GenericBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 173 of file GenericBoundTrackParameters.hpp

Referenced by Acts::GenericBoundTrackParameters< ParticleHypothesis >::fourPosition(), and Acts::GenericBoundTrackParameters< ParticleHypothesis >::position().

+ Here is the caller graph for this function:

template<class particle_hypothesis_t>
void Acts::GenericBoundTrackParameters< particle_hypothesis_t >::normalizePhiTheta ( )
inlineprivate

Ensure phi and theta angles are within bounds.

Definition at line 262 of file GenericBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 262 of file GenericBoundTrackParameters.hpp

Referenced by Acts::GenericBoundTrackParameters< ParticleHypothesis >::GenericBoundTrackParameters().

+ Here is the caller graph for this function:

template<class particle_hypothesis_t>
GenericBoundTrackParameters& Acts::GenericBoundTrackParameters< particle_hypothesis_t >::operator= ( const GenericBoundTrackParameters< particle_hypothesis_t > &  )
default
template<class particle_hypothesis_t>
GenericBoundTrackParameters& Acts::GenericBoundTrackParameters< particle_hypothesis_t >::operator= ( GenericBoundTrackParameters< particle_hypothesis_t > &&  )
default
template<class particle_hypothesis_t>
const ParametersVector& Acts::GenericBoundTrackParameters< particle_hypothesis_t >::parameters ( ) const
inline

Parameters vector.

Definition at line 122 of file GenericBoundTrackParameters.hpp.

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

template<class particle_hypothesis_t>
const ParticleHypothesis& Acts::GenericBoundTrackParameters< particle_hypothesis_t >::particleHypothesis ( ) const
inline

Particle hypothesis.

Definition at line 235 of file GenericBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 235 of file GenericBoundTrackParameters.hpp

Referenced by Acts::EDM4hepUtil::detail::convertTrackParametersToEdm4hep(), and Acts::ImpactPointEstimator< input_track_t, propagator_t, propagator_options_t >::getDistanceAndMomentum().

+ Here is the caller graph for this function:

template<class particle_hypothesis_t>
Scalar Acts::GenericBoundTrackParameters< particle_hypothesis_t >::phi ( ) const
inline

Phi direction.

Definition at line 206 of file GenericBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 206 of file GenericBoundTrackParameters.hpp

Referenced by Acts::GenericBoundTrackParameters< ParticleHypothesis >::normalizePhiTheta().

+ Here is the caller graph for this function:

template<class particle_hypothesis_t>
Vector3 Acts::GenericBoundTrackParameters< particle_hypothesis_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 199 of file GenericBoundTrackParameters.hpp.

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

Referenced by PHTpcResiduals::addTrackState(), Acts::detail::GsfActor< bethe_heitler_approx_t, traj_t >::applyBetheHeitler(), BOOST_DATA_TEST_CASE(), ActsTransformations::calculateDCA(), checkParametersConsistency(), ActsExamples::PropagationAlgorithm::execute(), ActsTransformations::fillSvtxTrackStates(), Acts::ZScanVertexFinder< vfitter_t >::find(), Acts::ImpactPointEstimator< input_track_t, propagator_t, propagator_options_t >::getDistanceAndMomentum(), Acts::ImpactPointEstimator< input_track_t, propagator_t, propagator_options_t >::getImpactParameters(), makeCurvilinearTransform(), ZCylinderSurfaceBuilder::operator()(), ZStrawSurfaceBuilder::operator()(), Acts::GenericCurvilinearTrackParameters< particle_hypothesis_t >::position(), Acts::MultiComponentBoundTrackParameters::position(), ActsPropagator::printTrackParams(), PHCosmicsTrkFitter::printTrackSeed(), PHActsTrkFitter::printTrackSeed(), Acts::GenericBoundTrackParameters< ParticleHypothesis >::referenceFrame(), Acts::StraightLineStepper::State::State(), Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::State(), and PHActsVertexPropagator::updateSvtxTrack().

+ Here is the caller graph for this function:

template<class particle_hypothesis_t>
Scalar Acts::GenericBoundTrackParameters< particle_hypothesis_t >::qOverP ( ) const
inline

Charge over momentum.

Definition at line 210 of file GenericBoundTrackParameters.hpp.

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

template<class particle_hypothesis_t>
RotationMatrix3 Acts::GenericBoundTrackParameters< particle_hypothesis_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 249 of file GenericBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 249 of file GenericBoundTrackParameters.hpp

template<class particle_hypothesis_t>
std::optional<ActsSquareMatrix<2> > Acts::GenericBoundTrackParameters< particle_hypothesis_t >::spatialImpactParameterCovariance ( ) const
inline

Covariance matrix of the spatial impact parameters (i.e., of d0 and z0)

Definition at line 138 of file GenericBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 138 of file GenericBoundTrackParameters.hpp

Referenced by Acts::GaussianGridTrackDensity< mainGridSize, trkGridSize >::addTrack(), and Acts::ImpactPointEstimator< input_track_t, propagator_t, propagator_options_t >::getVertexCompatibility().

+ Here is the caller graph for this function:

template<class particle_hypothesis_t>
ActsVector<2> Acts::GenericBoundTrackParameters< particle_hypothesis_t >::spatialImpactParameters ( ) const
inline

Vector of spatial impact parameters (i.e., d0 and z0)

Definition at line 124 of file GenericBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 124 of file GenericBoundTrackParameters.hpp

template<class particle_hypothesis_t>
Scalar Acts::GenericBoundTrackParameters< particle_hypothesis_t >::theta ( ) const
inline

Theta direction.

Definition at line 208 of file GenericBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 208 of file GenericBoundTrackParameters.hpp

Referenced by Acts::GenericBoundTrackParameters< ParticleHypothesis >::normalizePhiTheta().

+ Here is the caller graph for this function:

template<class particle_hypothesis_t>
Scalar Acts::GenericBoundTrackParameters< particle_hypothesis_t >::time ( ) const
inline

Time coordinate.

Definition at line 203 of file GenericBoundTrackParameters.hpp.

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

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), checkParametersConsistency(), Acts::StraightLineStepper::State::State(), Acts::EigenStepper< extensionlist_t, auctioneer_t >::State::State(), and Acts::MultiComponentBoundTrackParameters::time().

+ Here is the caller graph for this function:

template<class particle_hypothesis_t>
Scalar Acts::GenericBoundTrackParameters< particle_hypothesis_t >::transverseMomentum ( ) const
inline

Transverse momentum.

Definition at line 223 of file GenericBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 223 of file GenericBoundTrackParameters.hpp

Referenced by Acts::MultiComponentBoundTrackParameters::transverseMomentum().

+ Here is the caller graph for this function:

Friends And Related Function Documentation

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

Compare two bound track parameters for bitwise in-equality.

Definition at line 286 of file GenericBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 286 of file GenericBoundTrackParameters.hpp

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

Print information to the output stream.

Definition at line 291 of file GenericBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 291 of file GenericBoundTrackParameters.hpp

template<class particle_hypothesis_t>
bool operator== ( const GenericBoundTrackParameters< particle_hypothesis_t > &  lhs,
const GenericBoundTrackParameters< particle_hypothesis_t > &  rhs 
)
friend

Compare two bound track parameters for bitwise equality.

Note
Comparing track parameters for bitwise equality is not a good idea. Depending on the context you might want to compare only the parameter values, or compare them for compatibility instead of equality; you might also have different (floating point) thresholds of equality in different contexts. None of that can be handled by this operator. Users should think really hard if this is what they want and we might decided that we will remove this in the future.

Definition at line 279 of file GenericBoundTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 279 of file GenericBoundTrackParameters.hpp

Member Data Documentation


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