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

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

+ Inheritance diagram for Acts::MultiComponentBoundTrackParameters:
+ Collaboration diagram for Acts::MultiComponentBoundTrackParameters:

Public Types

using Parameters = BoundTrackParameters
 
using ParticleHypothesis = Parameters::ParticleHypothesis
 
using Scalar = typename Parameters::Scalar
 
using ParametersVector = typename Parameters::ParametersVector
 
using CovarianceMatrix = typename Parameters::CovarianceMatrix
 

Public Member Functions

template<typename covariance_t >
 MultiComponentBoundTrackParameters (std::shared_ptr< const Surface > surface, const std::vector< std::tuple< double, BoundVector, covariance_t >> &cmps, ParticleHypothesis particleHypothesis)
 Construct from multiple components.
 
 MultiComponentBoundTrackParameters (std::shared_ptr< const Surface > surface, const BoundVector &params, std::optional< BoundSquareMatrix > cov, ParticleHypothesis particleHypothesis)
 
 MultiComponentBoundTrackParameters ()=delete
 Parameters are not default constructible due to the charge type.
 
 MultiComponentBoundTrackParameters (const MultiComponentBoundTrackParameters &)=default
 
 MultiComponentBoundTrackParameters (MultiComponentBoundTrackParameters &&)=default
 
 ~MultiComponentBoundTrackParameters ()=default
 
MultiComponentBoundTrackParametersoperator= (const MultiComponentBoundTrackParameters &)=default
 
MultiComponentBoundTrackParametersoperator= (MultiComponentBoundTrackParameters &&)=default
 
const autocomponents () const
 Access the parameters.
 
const SurfacereferenceSurface () const
 Reference surface onto which the parameters are bound.
 
std::pair< double, Parametersoperator[] (std::size_t i) const
 Get the weight and a GenericBoundTrackParameters object for one component.
 
ParametersVector parameters () const
 Parameters vector.
 
std::optional< CovarianceMatrixcovariance () const
 Optional covariance matrix.
 
template<BoundIndices kIndex>
Scalar get () const
 
Vector4 fourPosition (const GeometryContext &geoCtx) const
 
Vector3 position (const GeometryContext &geoCtx) const
 
Scalar time () const
 Time coordinate.
 
Vector3 direction () const
 
Scalar phi () const
 Phi direction.
 
Scalar theta () const
 Theta direction.
 
Scalar qOverP () const
 Charge over momentum.
 
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.
 

Private Member Functions

template<typename projector_t >
auto reduce (projector_t &&proj) const
 Helper function to reduce the component vector to a single representation.
 

Private Attributes

std::vector< std::tuple
< double, BoundVector,
std::optional
< BoundSquareMatrix > > > 
m_components
 
std::shared_ptr< const Surfacem_surface
 
ParticleHypothesis m_particleHypothesis
 

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?

Definition at line 33 of file MultiComponentTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 33 of file MultiComponentTrackParameters.hpp

Member Typedef Documentation

Definition at line 39 of file MultiComponentTrackParameters.hpp.

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

Definition at line 35 of file MultiComponentTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 35 of file MultiComponentTrackParameters.hpp

Definition at line 38 of file MultiComponentTrackParameters.hpp.

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

Definition at line 37 of file MultiComponentTrackParameters.hpp.

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

Constructor & Destructor Documentation

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

Construct from multiple components.

Definition at line 73 of file MultiComponentTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 73 of file MultiComponentTrackParameters.hpp

References Acts::Test::cov, and m_components.

Acts::MultiComponentBoundTrackParameters::MultiComponentBoundTrackParameters ( std::shared_ptr< const Surface surface,
const BoundVector params,
std::optional< BoundSquareMatrix 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
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.

Definition at line 104 of file MultiComponentTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 104 of file MultiComponentTrackParameters.hpp

References m_components, and testing::internal::move().

+ Here is the call graph for this function:

Acts::MultiComponentBoundTrackParameters::MultiComponentBoundTrackParameters ( )
delete

Parameters are not default constructible due to the charge type.

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

Member Function Documentation

Scalar Acts::MultiComponentBoundTrackParameters::absoluteMomentum ( ) const
inline

Absolute momentum.

Definition at line 204 of file MultiComponentTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 204 of file MultiComponentTrackParameters.hpp

References Acts::GenericBoundTrackParameters< particle_hypothesis_t >::absoluteMomentum(), merge_hashes::p, and reduce().

+ Here is the call graph for this function:

Scalar Acts::MultiComponentBoundTrackParameters::charge ( ) const
inline

Particle electric charge.

Definition at line 219 of file MultiComponentTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 219 of file MultiComponentTrackParameters.hpp

References Acts::GenericBoundTrackParameters< particle_hypothesis_t >::charge(), merge_hashes::p, and reduce().

+ Here is the call graph for this function:

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

Access the parameters.

Definition at line 126 of file MultiComponentTrackParameters.hpp.

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

References m_components.

Referenced by Acts::MultiEigenStepperLoop< extensionlist_t, component_reducer_t, auctioneer_t >::State::State().

+ Here is the caller graph for this function:

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

Optional covariance matrix.

Definition at line 146 of file MultiComponentTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 146 of file MultiComponentTrackParameters.hpp

References Acts::GenericBoundTrackParameters< particle_hypothesis_t >::covariance(), merge_hashes::p, and reduce().

+ Here is the call graph for this function:

Vector3 Acts::MultiComponentBoundTrackParameters::direction ( ) const
inline

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

Definition at line 189 of file MultiComponentTrackParameters.hpp.

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

References Acts::GenericBoundTrackParameters< particle_hypothesis_t >::direction(), merge_hashes::p, and reduce().

Referenced by phi(), and theta().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Space-time position four-vector.

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

Definition at line 170 of file MultiComponentTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 170 of file MultiComponentTrackParameters.hpp

References Acts::GenericBoundTrackParameters< particle_hypothesis_t >::fourPosition(), merge_hashes::p, and reduce().

+ Here is the call graph for this function:

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

Access a single parameter value identified by its index.

Template Parameters
kIndexTrack parameter index

Definition at line 162 of file MultiComponentTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 162 of file MultiComponentTrackParameters.hpp

References Acts::GenericBoundTrackParameters< particle_hypothesis_t >::get(), merge_hashes::p, and reduce().

+ Here is the call graph for this function:

Vector3 Acts::MultiComponentBoundTrackParameters::momentum ( ) const
inline

Momentum three-vector.

Definition at line 214 of file MultiComponentTrackParameters.hpp.

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

References Acts::GenericBoundTrackParameters< particle_hypothesis_t >::momentum(), merge_hashes::p, and reduce().

+ Here is the call graph for this function:

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

Get the weight and a GenericBoundTrackParameters object for one component.

Definition at line 132 of file MultiComponentTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 132 of file MultiComponentTrackParameters.hpp

References m_components, m_particleHypothesis, and m_surface.

ParametersVector Acts::MultiComponentBoundTrackParameters::parameters ( ) const
inline

Parameters vector.

Definition at line 141 of file MultiComponentTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 141 of file MultiComponentTrackParameters.hpp

References merge_hashes::p, Acts::GenericBoundTrackParameters< particle_hypothesis_t >::parameters(), and reduce().

+ Here is the call graph for this function:

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

Particle hypothesis.

Definition at line 224 of file MultiComponentTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 224 of file MultiComponentTrackParameters.hpp

References m_particleHypothesis.

Scalar Acts::MultiComponentBoundTrackParameters::phi ( ) const
inline

Phi direction.

Definition at line 195 of file MultiComponentTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 195 of file MultiComponentTrackParameters.hpp

References direction(), and Acts::VectorHelpers::phi().

+ Here is the call graph for this function:

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

Spatial position three-vector.

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

Definition at line 178 of file MultiComponentTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 178 of file MultiComponentTrackParameters.hpp

References merge_hashes::p, Acts::GenericBoundTrackParameters< particle_hypothesis_t >::position(), and reduce().

+ Here is the call graph for this function:

Scalar Acts::MultiComponentBoundTrackParameters::qOverP ( ) const
inline

Charge over momentum.

Definition at line 201 of file MultiComponentTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 201 of file MultiComponentTrackParameters.hpp

template<typename projector_t >
auto Acts::MultiComponentBoundTrackParameters::reduce ( projector_t &&  proj) const
inlineprivate

Helper function to reduce the component vector to a single representation.

Definition at line 51 of file MultiComponentTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 51 of file MultiComponentTrackParameters.hpp

References i, m_components, and proj().

Referenced by absoluteMomentum(), charge(), covariance(), direction(), fourPosition(), get(), momentum(), parameters(), position(), pysigh(), pystrf(), time(), and transverseMomentum().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Reference surface onto which the parameters are bound.

Definition at line 129 of file MultiComponentTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 129 of file MultiComponentTrackParameters.hpp

References m_surface.

Referenced by Acts::MultiEigenStepperLoop< extensionlist_t, component_reducer_t, auctioneer_t >::State::State().

+ Here is the caller graph for this function:

Scalar Acts::MultiComponentBoundTrackParameters::theta ( ) const
inline

Theta direction.

Definition at line 198 of file MultiComponentTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 198 of file MultiComponentTrackParameters.hpp

References direction(), and Acts::VectorHelpers::theta().

+ Here is the call graph for this function:

Scalar Acts::MultiComponentBoundTrackParameters::time ( ) const
inline

Time coordinate.

Definition at line 183 of file MultiComponentTrackParameters.hpp.

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

References merge_hashes::p, reduce(), and Acts::GenericBoundTrackParameters< particle_hypothesis_t >::time().

+ Here is the call graph for this function:

Scalar Acts::MultiComponentBoundTrackParameters::transverseMomentum ( ) const
inline

Transverse momentum.

Definition at line 209 of file MultiComponentTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 209 of file MultiComponentTrackParameters.hpp

References merge_hashes::p, reduce(), and Acts::GenericBoundTrackParameters< particle_hypothesis_t >::transverseMomentum().

+ Here is the call graph for this function:

Member Data Documentation

std::vector<std::tuple<double, BoundVector, std::optional<BoundSquareMatrix> > > Acts::MultiComponentBoundTrackParameters::m_components
private

Definition at line 43 of file MultiComponentTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 43 of file MultiComponentTrackParameters.hpp

Referenced by components(), MultiComponentBoundTrackParameters(), operator[](), and reduce().

ParticleHypothesis Acts::MultiComponentBoundTrackParameters::m_particleHypothesis
private

Definition at line 47 of file MultiComponentTrackParameters.hpp.

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

Referenced by operator[](), and particleHypothesis().

std::shared_ptr<const Surface> Acts::MultiComponentBoundTrackParameters::m_surface
private

Definition at line 44 of file MultiComponentTrackParameters.hpp.

View newest version in sPHENIX GitHub at line 44 of file MultiComponentTrackParameters.hpp

Referenced by operator[](), and referenceSurface().


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