ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::MultiComponentBoundTrackParameters Class Reference

This class is only a light wrapper around a surface and a vector of parameters. More...

#include <Acts/EventData/MultiComponentTrackParameters.hpp>

Public Types

using ConstructionTuple
 Type alias for construction tuple containing weight, position, direction, q/p, and covariance.
using CovarianceMatrix = typename Parameters::CovarianceMatrix
 Type alias for covariance matrix.
using Parameters = BoundTrackParameters
 Type alias for bound track parameters.
using ParametersVector = typename Parameters::ParametersVector
 Type alias for bound parameters vector.
using ParticleHypothesis = Parameters::ParticleHypothesis
 Type alias for particle hypothesis.

Public Member Functions

 MultiComponentBoundTrackParameters ()=delete
 Parameters are not default constructible due to the charge type.
 MultiComponentBoundTrackParameters (const MultiComponentBoundTrackParameters &)=default
 Copy constructor.
 MultiComponentBoundTrackParameters (MultiComponentBoundTrackParameters &&)=default
 Move constructor.
 MultiComponentBoundTrackParameters (std::shared_ptr< const Surface > surface, const ParametersVector &params, std::optional< BoundSquareMatrix > cov, ParticleHypothesis particleHypothesis)
 Construct from a parameters vector on the surface and particle charge.
template<typename covariance_t>
 MultiComponentBoundTrackParameters (std::shared_ptr< const Surface > surface, const std::vector< std::tuple< double, ParametersVector, covariance_t > > &cmps, ParticleHypothesis particleHypothesis)
 Construct from multiple components.
 ~MultiComponentBoundTrackParameters ()=default
double absoluteMomentum () const
 Absolute momentum.
double charge () const
 Particle electric charge.
const auto & components () const
 Access the parameters.
std::optional< CovarianceMatrixcovariance () const
 Optional covariance matrix.
Vector3 direction () const
 Unit direction three-vector, i.e.
Vector4 fourPosition (const GeometryContext &geoCtx) const
 Space-time position four-vector.
template<BoundIndices kIndex>
double get () const
 Access a single parameter value identified by its index.
Vector3 momentum () const
 Momentum three-vector.
MultiComponentBoundTrackParametersoperator= (const MultiComponentBoundTrackParameters &)=default
 Copy assignment operator.
MultiComponentBoundTrackParametersoperator= (MultiComponentBoundTrackParameters &&)=default
 Move assignment operator.
std::pair< double, Parametersoperator[] (std::size_t i) const
 Get the weight and a GenericBoundTrackParameters object for one component.
ParametersVector parameters () const
 Parameters vector.
const ParticleHypothesisparticleHypothesis () const
 Particle hypothesis.
double phi () const
 Phi direction.
Vector3 position (const GeometryContext &geoCtx) const
 Spatial position three-vector.
double qOverP () const
 Charge over momentum.
const SurfacereferenceSurface () const
 Reference surface onto which the parameters are bound.
double theta () const
 Theta direction.
double time () const
 Time coordinate.
MultiComponentBoundTrackParameters toBound () const
 Comply with bound convertible, in this case return a copy.
double transverseMomentum () const
 Transverse momentum.

Static Public Member Functions

static MultiComponentBoundTrackParameters createCurvilinear (const GeometryContext &geoCtx, const std::vector< ConstructionTuple > &curvi, ParticleHypothesis particleHypothesis)
 We need this helper function in order to construct the base class properly.

Detailed Description

This class is only a light wrapper around a surface and a vector of parameters.

Its main purpose is to provide many constructors for the underlying vector. Most accessors are generated from the BoundTrackParameters equivalent and thus may be expensive

Note
This class holds shared ownership on its reference surface.
The accessors for parameters, covariance, position, etc. are the weighted means of the components.
If all covariances are zero, the accessor for the total covariance does return std::nullopt; TODO Add constructor from range and projector maybe?

Member Typedef Documentation

◆ ConstructionTuple

Initial value:
std::tuple<double, Acts::Vector4, Acts::Vector3,
typename Parameters::CovarianceMatrix CovarianceMatrix
Type alias for covariance matrix.
Definition MultiComponentTrackParameters.hpp:42
ActsVector< 4 > Vector4
4-dimensional vector type for space-time coordinates
Definition Algebra.hpp:74
ActsVector< 3 > Vector3
3-dimensional vector type for e.g. spatial coordinates and momenta
Definition Algebra.hpp:72

Type alias for construction tuple containing weight, position, direction, q/p, and covariance.

◆ CovarianceMatrix

◆ Parameters

Type alias for bound track parameters.

◆ ParametersVector

Type alias for bound parameters vector.

◆ ParticleHypothesis

Constructor & Destructor Documentation

◆ MultiComponentBoundTrackParameters() [1/5]

template<typename covariance_t>
Acts::MultiComponentBoundTrackParameters::MultiComponentBoundTrackParameters ( std::shared_ptr< const Surface > surface,
const std::vector< std::tuple< double, ParametersVector, covariance_t > > & cmps,
ParticleHypothesis particleHypothesis )

Construct from multiple components.

Parameters
surfaceSurface on which the parameters are bound
cmpsVector of weight, parameters vector, and covariance components
particleHypothesisParticle hypothesis for the parameters

◆ MultiComponentBoundTrackParameters() [2/5]

Acts::MultiComponentBoundTrackParameters::MultiComponentBoundTrackParameters ( std::shared_ptr< const Surface > surface,
const ParametersVector & params,
std::optional< BoundSquareMatrix > cov,
ParticleHypothesis particleHypothesis )

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

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

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.

◆ MultiComponentBoundTrackParameters() [3/5]

Acts::MultiComponentBoundTrackParameters::MultiComponentBoundTrackParameters ( )
delete

Parameters are not default constructible due to the charge type.

◆ MultiComponentBoundTrackParameters() [4/5]

Acts::MultiComponentBoundTrackParameters::MultiComponentBoundTrackParameters ( const MultiComponentBoundTrackParameters & )
default

Copy constructor.

◆ MultiComponentBoundTrackParameters() [5/5]

Acts::MultiComponentBoundTrackParameters::MultiComponentBoundTrackParameters ( MultiComponentBoundTrackParameters && )
default

Move constructor.

◆ ~MultiComponentBoundTrackParameters()

Acts::MultiComponentBoundTrackParameters::~MultiComponentBoundTrackParameters ( )
default

Member Function Documentation

◆ absoluteMomentum()

double Acts::MultiComponentBoundTrackParameters::absoluteMomentum ( ) const

Absolute momentum.

Returns
Weighted average absolute momentum magnitude

◆ charge()

double Acts::MultiComponentBoundTrackParameters::charge ( ) const

Particle electric charge.

Returns
Weighted average particle electric charge

◆ components()

const auto & Acts::MultiComponentBoundTrackParameters::components ( ) const

Access the parameters.

Returns
Reference to the vector of parameter components

◆ covariance()

std::optional< CovarianceMatrix > Acts::MultiComponentBoundTrackParameters::covariance ( ) const

Optional covariance matrix.

Returns
Optional weighted average covariance matrix, nullopt if all components have zero covariance

◆ createCurvilinear()

MultiComponentBoundTrackParameters Acts::MultiComponentBoundTrackParameters::createCurvilinear ( const GeometryContext & geoCtx,
const std::vector< ConstructionTuple > & curvi,
ParticleHypothesis particleHypothesis )
static

We need this helper function in order to construct the base class properly.

Parameters
geoCtxGeometry context for construction
curviVector of construction tuples containing component data
particleHypothesisParticle hypothesis for the parameters
Returns
Multi-component bound track parameters in curvilinear representation

◆ direction()

Vector3 Acts::MultiComponentBoundTrackParameters::direction ( ) const

Unit direction three-vector, i.e.

the normalized momentum three-vector.

Returns
Weighted average normalized direction vector

◆ fourPosition()

Vector4 Acts::MultiComponentBoundTrackParameters::fourPosition ( const GeometryContext & geoCtx) const

Space-time position four-vector.

Parameters
[in]geoCtxGeometry context for the local-to-global transformation
Returns
Weighted average four-dimensional position vector

◆ get()

template<BoundIndices kIndex>
double Acts::MultiComponentBoundTrackParameters::get ( ) const

Access a single parameter value identified by its index.

Template Parameters
kIndexTrack parameter index
Returns
Weighted average of the parameter at the specified index

◆ momentum()

Vector3 Acts::MultiComponentBoundTrackParameters::momentum ( ) const

Momentum three-vector.

Returns
Weighted average three-dimensional momentum vector

◆ operator=() [1/2]

MultiComponentBoundTrackParameters & Acts::MultiComponentBoundTrackParameters::operator= ( const MultiComponentBoundTrackParameters & )
default

Copy assignment operator.

Returns
Reference to this object after copying

◆ operator=() [2/2]

MultiComponentBoundTrackParameters & Acts::MultiComponentBoundTrackParameters::operator= ( MultiComponentBoundTrackParameters && )
default

Move assignment operator.

Returns
Reference to this object after moving

◆ operator[]()

std::pair< double, Parameters > Acts::MultiComponentBoundTrackParameters::operator[] ( std::size_t i) const

Get the weight and a GenericBoundTrackParameters object for one component.

Parameters
iIndex of the component to access
Returns
Pair of weight and bound track parameters for the component

◆ parameters()

ParametersVector Acts::MultiComponentBoundTrackParameters::parameters ( ) const

Parameters vector.

Returns
Weighted average of parameters from all components

◆ particleHypothesis()

const ParticleHypothesis & Acts::MultiComponentBoundTrackParameters::particleHypothesis ( ) const

Particle hypothesis.

Returns
Reference to the particle hypothesis

◆ phi()

double Acts::MultiComponentBoundTrackParameters::phi ( ) const

Phi direction.

Returns
Azimuthal angle phi derived from average direction

◆ position()

Vector3 Acts::MultiComponentBoundTrackParameters::position ( const GeometryContext & geoCtx) const

Spatial position three-vector.

Parameters
[in]geoCtxGeometry context for the local-to-global transformation
Returns
Weighted average three-dimensional position vector

◆ qOverP()

double Acts::MultiComponentBoundTrackParameters::qOverP ( ) const

Charge over momentum.

Returns
Weighted average charge over momentum ratio

◆ referenceSurface()

const Surface & Acts::MultiComponentBoundTrackParameters::referenceSurface ( ) const

Reference surface onto which the parameters are bound.

Returns
Reference to the bound reference surface

◆ theta()

double Acts::MultiComponentBoundTrackParameters::theta ( ) const

Theta direction.

Returns
Polar angle theta derived from average direction

◆ time()

double Acts::MultiComponentBoundTrackParameters::time ( ) const

Time coordinate.

Returns
Weighted average time coordinate

◆ toBound()

MultiComponentBoundTrackParameters Acts::MultiComponentBoundTrackParameters::toBound ( ) const

Comply with bound convertible, in this case return a copy.

Returns
Copy of this multi-component track parameters

◆ transverseMomentum()

double Acts::MultiComponentBoundTrackParameters::transverseMomentum ( ) const

Transverse momentum.

Returns
Weighted average transverse momentum magnitude