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

These functions perform the transport of a covariance matrix using given Jacobians. The required data is provided by the stepper object with some additional data. Since this is a purely algebraic problem the calculations are identical for StraightLineStepper and EigenStepper. As a consequence the methods can be located in a separate file. More...

Namespaces

namespace  Test
 
namespace  VerticesHelper
 Helper methods for polyhedron vertices drawing and inside/outside checks.
 

Classes

struct  CorrectedFreeToBoundTransformer
 Corrected free to bound transform class based on covariance matrix sqrt root in UKF: https://doi.org/10.1117/12.280797. More...
 
struct  covariance_helper
 check and correct covariance matrix More...
 
struct  DynamicColumnBase
 
struct  DynamicColumn
 
struct  DynamicColumn< bool >
 
struct  UnrestrictedParameterTraits
 Traits class for an unrestricted parameter. More...
 
struct  RestrictedParameterTraits
 
struct  CyclicParameterTraits
 
struct  PhiBoundParameterLimits
 
struct  ThetaBoundParameterLimits
 
struct  ParameterTraitsImpl< BoundIndices, BoundIndices::eBoundPhi >
 
struct  ParameterTraitsImpl< BoundIndices, BoundIndices::eBoundTheta >
 
struct  ParameterTraitsImpl< BoundIndices, kIndex >
 
struct  ParameterTraitsImpl< FreeIndices, kIndex >
 
struct  ParametersTraitsImpl< BoundIndices >
 
struct  ParametersTraitsImpl< FreeIndices >
 
struct  visit_measurement_callable
 
struct  is_same_template
 
struct  is_same_template< T, T >
 
class  SmallObjectCache
 Small opaque cache type which uses small buffer optimization. More...
 
struct  abort_list_impl< first, others...>
 
struct  abort_list_impl< last >
 This is the check call on the a last of all conditions. More...
 
struct  abort_list_impl<>
 This is the empty call list - never abort. More...
 
struct  action_list_impl< first, others...>
 
struct  action_list_impl< last >
 
struct  action_list_impl<>
 The empty action list call implementation. More...
 
struct  VoidAuctioneer
 Auctioneer that takes all extensions as valid that make a valid bid. More...
 
struct  FirstValidAuctioneer
 Auctioneer that states only the first one that makes a valid bid. More...
 
struct  HighestValidAuctioneer
 Auctioneer that makes only the highest bidding extension valid. If multiple elements have the same int, the first one with this value is picked. More...
 
struct  GenericDefaultExtension
 Default evaluater of the k_i's and elements of the transport matrix D of the RKN4 stepping. This is a pure implementation by textbook. More...
 
struct  GenericDenseEnvironmentExtension
 Evaluater of the k_i's and elements of the transport matrix D of the RKN4 stepping. This implementation involves energy loss due to ioninisation, bremsstrahlung, pair production and photonuclear interaction in the propagation and the jacobian. These effects will only occur if the propagation is in a TrackingVolume with attached material. More...
 
struct  stepper_bound_parameters
 
struct  stepper_curvilinear_parameters
 
struct  PointwiseMaterialInteraction
 Struct to handle pointwise material interaction. More...
 
struct  Step
 The step information for recording. More...
 
struct  SteppingLogger
 a step length logger for debugging the stepping More...
 
struct  VoidNavigator
 The void navigator struct as a default navigator. More...
 
struct  VolumeMaterialInteraction
 Struct to handle volume material interaction. More...
 
struct  FacesHelper
 Helper for writing out faces for polyhedron representation. More...
 
struct  IntersectionHelper2D
 
struct  GaussianComponent
 
struct  GsfResult
 
struct  GsfActor
 The actor carrying out the GSF algorithm. More...
 
class  ScopedGsfInfoPrinterAndChecker
 
struct  MultiTrajectoryProjector
 Projector type which maps a MultiTrajectory-Index to a tuple of [weight, parameters, covariance]. Therefore, it contains a MultiTrajectory and for now a std::map for the weights. More...
 
class  SymmetricKLDistanceMatrix
 Class representing a symmetric distance matrix. More...
 
struct  IsMultiComponentBoundParameters
 
struct  IsMultiComponentBoundParameters< MultiComponentBoundTrackParameters >
 
class  NeighborHoodIndices
 
exception  Axis< AxisType::Equidistant, bdt >
 calculate bin indices for an equidistant binning More...
 
exception  Axis< AxisType::Variable, bdt >
 calculate bin indices for a variable binning More...
 
struct  Extendable
 
class  Grid
 class for describing a regular multi-dimensional grid More...
 
class  GlobalNeighborHoodIndices
 
struct  grid_helper_impl
 
struct  grid_helper_impl< 0u >
 
struct  grid_helper
 helper functions for grid-related operations More...
 
struct  can_interpolate
 check types for requirements needed by interpolation More...
 
struct  get_dimension
 determine number of dimension from power of 2 More...
 
struct  result_type_extractor
 
struct  action_type_extractor
 
struct  RealQuadraticEquation
 
class  FixedSizeSubspace
 
struct  CyclicAngle
 Angle descriptions for the combineBoundGaussianMixture function. More...
 
struct  CyclicRadiusAngle
 
struct  AngleDescription
 A compile time map to provide angle descriptions for different surfaces. More...
 
struct  AngleDescription< Surface::Disc >
 
struct  AngleDescription< Surface::Cylinder >
 
struct  RefHolder
 Internal holder type for referencing a backend without ownership. More...
 
struct  ConstRefHolder
 
struct  ValueHolder
 Internal holder type holding a backend container by value. More...
 
struct  nonesuch
 Helper struct which cannot be constructed (or destroyed) at all. More...
 
struct  detector
 
struct  detector< Default, std::void_t< Op< Args...> >, Op, Args...>
 
class  CantorEdge
 
struct  TorchTypeMap
 So far this is only needed for integers. More...
 
struct  TorchTypeMap< int64_t >
 
struct  TorchTypeMap< int32_t >
 
struct  TorchTypeMap< int16_t >
 
struct  TorchTypeMap< int8_t >
 
struct  TorchTypeMap< float >
 
struct  TorchTypeMap< double >
 

Typedefs

template<typename index_t , index_t kIndex>
using ParameterTraits = typename ParameterTraitsImpl< index_t, kIndex >::Type
 
template<typename stepper_t >
using stepper_bound_parameters_type_t = typename stepper_bound_parameters< stepper_t >::type
 
template<typename stepper_t >
using stepper_curvilinear_parameters_type_t = typename stepper_curvilinear_parameters< stepper_t >::type
 
using RotationToAxes = std::tuple< RotationMatrix3, RotationMatrix3, RotationMatrix3 >
 
using EquidistantAxis = Axis< AxisType::Equidistant >
 
using VariableAxis = Axis< AxisType::Variable >
 
template<typename T >
using result_type_t = typename result_type_extractor::extractor_impl< T >
 
template<typename T >
using action_type_t = typename action_type_extractor::extractor_impl< T >
 
using TrackStateTraits = TrackStateTraits< MultiTrajectoryTraits::MeasurementSizeMax, true >
 

Enumerations

enum  StatesType
 
enum  AxisBoundaryType
 
enum  AxisType
 Enum which determines the binning type of the axis. More...
 

Functions

template<typename index_container_t , typename measured_t , typename residuals_t >
void calculateResiduals (BoundIndices size, const index_container_t &indices, const BoundVector &reference, const Eigen::MatrixBase< measured_t > &measured, Eigen::MatrixBase< residuals_t > &residuals)
 
template<typename index_container_t , typename measured_t , typename residuals_t >
void calculateResiduals (FreeIndices size, const index_container_t &indices, const FreeVector &reference, const Eigen::MatrixBase< measured_t > &measured, Eigen::MatrixBase< residuals_t > &residuals)
 
void printBoundParameters (std::ostream &os, const Surface &surface, const BoundVector &params, const BoundSquareMatrix *cov=nullptr)
 
void printFreeParameters (std::ostream &os, const FreeVector &params, const FreeMatrix *cov=nullptr)
 
void printMeasurement (std::ostream &os, BoundIndices size, const uint8_t *indices, const ActsScalar *params, const ActsScalar *cov)
 
void printMeasurement (std::ostream &os, FreeIndices size, const uint8_t *indices, const ActsScalar *params, const ActsScalar *cov)
 
FreeVector transformBoundToFreeParameters (const Surface &surface, const GeometryContext &geoCtx, const BoundVector &boundParams)
 
Result< BoundVectortransformFreeToBoundParameters (const FreeVector &freeParams, const Surface &surface, const GeometryContext &geoCtx, ActsScalar tolerance=s_onSurfaceTolerance)
 
Result< BoundVectortransformFreeToBoundParameters (const Vector3 &position, ActsScalar time, const Vector3 &direction, ActsScalar qOverP, const Surface &surface, const GeometryContext &geoCtx, ActsScalar tolerance=s_onSurfaceTolerance)
 
BoundVector transformFreeToCurvilinearParameters (ActsScalar time, const Vector3 &direction, ActsScalar qOverP)
 
BoundVector transformFreeToCurvilinearParameters (ActsScalar time, ActsScalar phi, ActsScalar theta, ActsScalar qOverP)
 
MaterialSlab combineSlabs (const MaterialSlab &slab1, const MaterialSlab &slab2)
 
Result< std::tuple
< BoundTrackParameters,
BoundMatrix, double > > 
boundState (const GeometryContext &geoContext, BoundSquareMatrix &covarianceMatrix, BoundMatrix &jacobian, FreeMatrix &transportJacobian, FreeVector &derivatives, BoundToFreeMatrix &jacToGlobal, FreeVector &parameters, const ParticleHypothesis &particleHypothesis, bool covTransport, double accumulatedPath, const Surface &surface, const FreeToBoundCorrection &freeToBoundCorrection=FreeToBoundCorrection(false))
 It does not check if the transported state is at the surface, this needs to be guaranteed by the propagator.
 
std::tuple
< CurvilinearTrackParameters,
BoundMatrix, double
curvilinearState (BoundSquareMatrix &covarianceMatrix, BoundMatrix &jacobian, FreeMatrix &transportJacobian, FreeVector &derivatives, BoundToFreeMatrix &jacToGlobal, const FreeVector &parameters, const ParticleHypothesis &particleHypothesis, bool covTransport, double accumulatedPath)
 This creates a curvilinear state.
 
void transportCovarianceToBound (const GeometryContext &geoContext, BoundSquareMatrix &boundCovariance, BoundMatrix &fullTransportJacobian, FreeMatrix &freeTransportJacobian, FreeVector &freeToPathDerivatives, BoundToFreeMatrix &boundToFreeJacobian, FreeVector &freeParameters, const Surface &surface, const FreeToBoundCorrection &freeToBoundCorrection=FreeToBoundCorrection(false))
 Method for on-demand covariance transport of a bound/curvilinear to another bound representation.
 
void transportCovarianceToCurvilinear (BoundSquareMatrix &boundCovariance, BoundMatrix &fullTransportJacobian, FreeMatrix &freeTransportJacobian, FreeVector &freeToPathDerivatives, BoundToFreeMatrix &boundToFreeJacobian, const Vector3 &direction)
 Method for on-demand covariance transport of a bound/curvilinear to a new curvilinear representation.
 
FreeToBoundMatrix freeToCurvilinearJacobian (const Vector3 &direction)
 Evaluate the projection Jacobian from free to curvilinear parameters without transport jacobian.
 
BoundToFreeMatrix curvilinearToFreeJacobian (const Vector3 &direction)
 Evaluate the projection Jacobian from curvilinear to free parameters without transport jacobian.
 
ActsMatrix< 7, 8 > directionToAnglesJacobian (const Vector3 &direction)
 This function calculates the jacobian from a free parameterisation to a mixed one with angular representation.
 
ActsMatrix< 8, 7 > anglesToDirectionJacobian (const Vector3 &direction)
 This function calculates the jacobian from a free parameterisation to a mixed one with angular representation.
 
BoundMatrix boundToBoundTransportJacobian (const GeometryContext &geoContext, const FreeVector &freeParameters, const BoundToFreeMatrix &boundToFreeJacobian, const FreeMatrix &freeTransportJacobian, const FreeVector &freeToPathDerivatives, const Surface &surface)
 This function calculates the full transport jacobian from a bound curvilinear representation to a new bound representation.
 
BoundMatrix boundToCurvilinearTransportJacobian (const Vector3 &direction, const BoundToFreeMatrix &boundToFreeJacobian, const FreeMatrix &freeTransportJacobian, const FreeVector &freeToPathDerivatives)
 This function calculates the full jacobian from a given bound/curvilinear parameterisation from a surface to new curvilinear parameterisation.
 
BoundToFreeMatrix boundToFreeTransportJacobian (const BoundToFreeMatrix &boundToFreeJacobian, const FreeMatrix &freeTransportJacobian)
 This function calculates the full jacobian from a given bound/curvilinear parameterisation from a new free parameterisation.
 
FreeToBoundMatrix freeToBoundTransportJacobian (const GeometryContext &geoContext, const FreeVector &freeParameters, const ActsMatrix< 7, 8 > &directionToAnglesJacobian, const ActsMatrix< 8, 7 > &anglesToDirectionJacobian, const FreeMatrix &freeTransportJacobian, const FreeVector &freeToPathDerivatives, const Surface &surface)
 This function calculates the full jacobian from a given free parameterisation to a new curvilinear bound parameterisation.
 
FreeToBoundMatrix freeToCurvilinearTransportJacobian (const Vector3 &direction, const ActsMatrix< 7, 8 > &directionToAnglesJacobian, const ActsMatrix< 8, 7 > &anglesToDirectionJacobian, const FreeMatrix &freeTransportJacobian, const FreeVector &freeToPathDerivatives)
 This function calculates the full transport jacobian from a free parameterisation to a bound one. Since a variation of the start parameters within a given uncertainty would lead to a variation of the end parameters, these need to be propagated onto the target surface. This an approximated approach to treat the (assumed) small change.
 
FreeMatrix freeToFreeTransportJacobian (const ActsMatrix< 7, 8 > &directionToAnglesJacobian, const ActsMatrix< 8, 7 > &anglesToDirectionJacobian, const FreeMatrix &freeTransportJacobian)
 This function calculates the free transfport jacobian from a free parameterisation.
 
template<typename path_aborter_t , typename propagator_state_t , typename stepper_t >
void setupLoopProtection (propagator_state_t &state, const stepper_t &stepper, path_aborter_t &pathAborter, bool releaseLimit, const Logger &logger)
 Estimate the loop protection limit.
 
template<typename stepper_t >
Acts::Intersection3D::Status updateSingleSurfaceStatus (const stepper_t &stepper, typename stepper_t::State &state, const Surface &surface, Direction navDir, const BoundaryCheck &bcheck, ActsScalar surfaceTolerance, const Logger &logger)
 
template<typename stepper_t , typename object_intersection_t >
void updateSingleStepSize (typename stepper_t::State &state, const object_intersection_t &oIntersection, bool release=true)
 
RotationToAxes rotationToLocalAxesDerivative (const RotationMatrix3 &rotation)
 Evaluate the derivative of local frame axes vector w.r.t. its rotation around global x/y/z axis : add parameter for rotation axis order.
 
std::unordered_map< int,
std::vector< int > > 
clusterDuplicateTracks (const std::multimap< int, std::pair< int, std::vector< int >>> &trackMap)
 
void transformComponent (const GaussianComponent &cmp, double &transformed_weight, double &transformed_mean, double &transformed_var)
 
auto inverseTransformComponent (double transformed_weight, double transformed_mean, double transformed_var)
 
template<typename component_range_t , typename projector_t >
bool weightsAreNormalized (const component_range_t &cmps, const projector_t &proj, double tol=s_normalizationTolerance)
 
template<typename component_range_t , typename projector_t >
void normalizeWeights (component_range_t &cmps, const projector_t &proj)
 
ActsScalar calculateDeterminant (const double *fullCalibrated, const double *fullCalibratedCovariance, TrackStateTraits< MultiTrajectoryTraits::MeasurementSizeMax, true >::Covariance predictedCovariance, TrackStateTraits< MultiTrajectoryTraits::MeasurementSizeMax, true >::Projector projector, unsigned int calibratedSize)
 
template<typename traj_t >
void computePosteriorWeights (const traj_t &mt, const std::vector< MultiTrajectoryTraits::IndexType > &tips, std::map< MultiTrajectoryTraits::IndexType, double > &weights)
 
std::ostream & operator<< (std::ostream &os, StatesType type)
 
template<typename traj_t , typename parameters_t = BoundTrackParameters>
std::pair< ActsDynamicMatrix,
std::unordered_map< size_t,
size_t > > 
globalTrackParametersCovariance (const traj_t &multiTraj, const size_t &entryIndex)
 
template<typename propagator_state_t , typename stepper_t , typename extensions_t , typename traj_t >
auto kalmanHandleMeasurement (const CalibrationContext &calibrationContext, propagator_state_t &state, const stepper_t &stepper, const extensions_t &extensions, const Surface &surface, const SourceLink &source_link, traj_t &fittedStates, const size_t lastTrackIndex, bool doCovTransport, const Logger &logger, const FreeToBoundCorrection &freeToBoundCorrection=FreeToBoundCorrection(false)) -> Result< typename traj_t::TrackStateProxy >
 
template<typename propagator_state_t , typename stepper_t , typename traj_t >
auto kalmanHandleNoMeasurement (propagator_state_t &state, const stepper_t &stepper, const Surface &surface, traj_t &fittedStates, const size_t lastTrackIndex, bool doCovTransport, const Logger &logger, const FreeToBoundCorrection &freeToBoundCorrection=FreeToBoundCorrection(false)) -> Result< typename traj_t::TrackStateProxy >
 
template<typename component_t , typename component_projector_t >
auto computeSymmetricKlDivergence (const component_t &a, const component_t &b, const component_projector_t &proj)
 
template<typename component_t , typename component_projector_t , typename angle_desc_t >
auto mergeComponents (const component_t &a, const component_t &b, const component_projector_t &proj, const angle_desc_t &angle_desc)
 
template<typename traj_t >
void voidFitterCalibrator (const GeometryContext &, const CalibrationContext &, const SourceLink &, typename traj_t::TrackStateProxy)
 
template<typename traj_t >
Result< void > voidFitterUpdater (const GeometryContext &, typename traj_t::TrackStateProxy trackState, Direction, const Logger &)
 
template<typename traj_t >
Result< void > voidFitterSmoother (const GeometryContext &, traj_t &trackStates, size_t entry, const Logger &)
 
template<typename traj_t >
bool voidOutlierFinder (typename traj_t::ConstTrackStateProxy)
 
template<typename traj_t >
bool voidReverseFilteringLogic (typename traj_t::ConstTrackStateProxy)
 
const SurfacevoidSurfaceAccessor (const SourceLink &)
 
template<typename T >
constexpr T ipow (T num, unsigned int pow)
 
template<typename T >
T wrap_periodic (T value, T start, T range)
 Wrap a periodic value back into the nominal range.
 
template<typename T >
T difference_periodic (T lhs, T rhs, T range)
 
template<typename T >
T radian_pos (T x)
 Calculate the equivalent angle in the [0, 2*pi) range.
 
template<typename T >
T radian_sym (T x)
 Calculate the equivalent angle in the [-pi, pi) range.
 
template<typename T >
std::pair< T, TnormalizePhiTheta (T phi, T theta)
 
template<typename Callable >
auto angleDescriptionSwitch (const Surface &surface, Callable &&callable)
 
template<int D, typename components_t , typename projector_t , typename angle_desc_t >
auto gaussianMixtureCov (const components_t components, const ActsVector< D > &mean, double sumOfWeights, projector_t &&projector, const angle_desc_t &angleDesc)
 
template<typename components_t , typename projector_t = Identity, typename angle_desc_t = AngleDescription<Surface::Plane>::Desc>
auto gaussianMixtureMeanCov (const components_t components, projector_t &&projector=projector_t{}, const angle_desc_t &angleDesc=angle_desc_t{})
 Combine multiple components into one representative track state object. The function takes iterators to allow for arbitrary ranges to be combined. The dimension of the vectors is infeared from the inputs.
 
constexpr HashedString fnv1a_32 (char const *s, std::size_t count)
 
constexpr HashedString fnv1a_32 (std::string_view s)
 
constexpr int length (const char *str)
 
template<typename intersection_t , typename logger_t = std::false_type>
bool checkIntersection (const intersection_t &intersection, double pLimit, double oLimit, double tolerance, const Logger &logger=getDummyLogger())
 
double roundWithPrecision (double val, int precision)
 
ActsScalar calculateDeterminant (const double *fullCalibrated, const double *fullCalibratedCovariance, TrackStateTraits::Covariance predictedCovariance, TrackStateTraits::Projector projector, unsigned int calibratedSize)
 
at::Tensor postprocessEdgeTensor (at::Tensor edges, bool removeSelfLoops=true, bool removeDuplicates=true, bool flipDirections=false)
 Post process edges.
 
at::Tensor buildEdgesFRNN (at::Tensor &embedFeatures, float rVal, int kVal, bool flipDirections=false)
 
at::Tensor buildEdgesKDTree (at::Tensor &embedFeatures, float rVal, int kVal, bool flipDirections=false)
 
at::Tensor buildEdges (at::Tensor &embedFeatures, float rVal, int kVal, bool flipDirections=false)
 
template<typename T >
bool operator== (const CantorEdge< T > &a, const CantorEdge< T > &b)
 
template<typename T >
bool operator< (const CantorEdge< T > &a, const CantorEdge< T > &b)
 
template<typename T >
at::Tensor vectorToTensor2D (std::vector< T > &vec, std::size_t cols)
 
template<typename T >
std::vector< Ttensor2DToVector (const at::Tensor &tensor)
 

Variables

template<typename indices_t >
constexpr size_t kParametersSize = ParametersTraitsImpl<indices_t>::kSize
 The maximum parameters vector size definable for an indices enum.
 
template<bool... values>
constexpr bool all_of_v = all_of<values...>::value
 
template<bool... values>
constexpr bool any_of_v = any_of<values...>::value
 
template<typename... Args>
constexpr bool has_duplicates_v = has_duplicates<Args...>::value
 
constexpr auto type_collector
 
template<typename helper , typename... items>
constexpr auto type_collector_t
 
template<typename T >
constexpr bool has_result_type_v
 
template<typename T >
constexpr bool has_action_type_v
 

Detailed Description

These functions perform the transport of a covariance matrix using given Jacobians. The required data is provided by the stepper object with some additional data. Since this is a purely algebraic problem the calculations are identical for StraightLineStepper and EigenStepper. As a consequence the methods can be located in a separate file.

These functions perform the calculation of the Jacobians for the the covariance transport. This is a purely algebraic problem the calculations are identical for StraightLineStepper and EigenStepper. As a consequence the methods can be located in a separate file.

Typedef Documentation

template<typename T >
using Acts::detail::action_type_t = typedef typename action_type_extractor::extractor_impl<T>

Meta function which gets the action for an aborter

Template Parameters
TThe type to extract from

Definition at line 107 of file type_collector.hpp.

View newest version in sPHENIX GitHub at line 107 of file type_collector.hpp

using Acts::detail::EquidistantAxis = typedef Axis<AxisType::Equidistant>

Definition at line 40 of file AxisFwd.hpp.

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

template<typename index_t , index_t kIndex>
using Acts::detail::ParameterTraits = typedef typename ParameterTraitsImpl<index_t, kIndex>::Type

Parameter traits for one specific parameter in one of the indices enums.

Template Parameters
index_tParameter indices enum
kIndexEnum index value to identify a parameter

This type resolves directly to one of the parameter traits classes defined above and allows for uniform access.

Definition at line 151 of file ParameterTraits.hpp.

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

template<typename T >
using Acts::detail::result_type_t = typedef typename result_type_extractor::extractor_impl<T>

Meta function which gets the result type from an action

Template Parameters
TThe type to extract from

Definition at line 92 of file type_collector.hpp.

View newest version in sPHENIX GitHub at line 92 of file type_collector.hpp

Definition at line 25 of file AlignmentHelper.hpp.

View newest version in sPHENIX GitHub at line 25 of file AlignmentHelper.hpp

template<typename stepper_t >
using Acts::detail::stepper_bound_parameters_type_t = typedef typename stepper_bound_parameters<stepper_t>::type

Definition at line 30 of file ParameterTraits.hpp.

View newest version in sPHENIX GitHub at line 30 of file ParameterTraits.hpp

template<typename stepper_t >
using Acts::detail::stepper_curvilinear_parameters_type_t = typedef typename stepper_curvilinear_parameters<stepper_t>::type

Definition at line 41 of file ParameterTraits.hpp.

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

Definition at line 19 of file GsfUtils.cpp.

View newest version in sPHENIX GitHub at line 19 of file GsfUtils.cpp

using Acts::detail::VariableAxis = typedef Axis<AxisType::Variable>

Definition at line 41 of file AxisFwd.hpp.

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

Enumeration Type Documentation

Enum which determines how the axis handle its outer boundaries possible values values

  • Open is the default behaviour: out of bounds positions are filled into the over or underflow bins
  • Bound: out-of-bounds positions resolve to first/last bin respectively
  • Closed: out-of-bounds positions resolve to the outermost bin on the opposite side

Definition at line 21 of file AxisFwd.hpp.

View newest version in sPHENIX GitHub at line 21 of file AxisFwd.hpp

Enum which determines the binning type of the axis.

Definition at line 24 of file AxisFwd.hpp.

View newest version in sPHENIX GitHub at line 24 of file AxisFwd.hpp

Enumeration type to allow templating on the state we want to project on with a MultiTrajectory

Definition at line 208 of file GsfUtils.hpp.

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

Function Documentation

template<typename Callable >
auto Acts::detail::angleDescriptionSwitch ( const Surface surface,
Callable &&  callable 
)

Definition at line 57 of file GaussianMixtureReduction.hpp.

View newest version in sPHENIX GitHub at line 57 of file GaussianMixtureReduction.hpp

References bounds, Acts::Surface::Cylinder, Acts::Surface::Disc, Acts::CylinderBounds::eR, writeMapConfig::surface, and Acts::Surface::type().

Referenced by Acts::reduceMixtureWithKLDistance().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ActsMatrix< 8, 7 > Acts::detail::anglesToDirectionJacobian ( const Vector3 &  direction)

This function calculates the jacobian from a free parameterisation to a mixed one with angular representation.

Parameters
directionThe direction of the track
Returns
the 8x7 jacobian for angles to direction relation

Definition at line 88 of file JacobianEngine.cpp.

View newest version in sPHENIX GitHub at line 88 of file JacobianEngine.cpp

References Acts::VectorHelpers::evaluateTrigonomics().

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), Acts::CovarianceCache::CovarianceCache(), freeToBoundTransportJacobian(), and freeToCurvilinearTransportJacobian().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Result< BoundState > Acts::detail::boundState ( const GeometryContext &  geoContext,
BoundSquareMatrix &  covarianceMatrix,
BoundMatrix &  jacobian,
FreeMatrix &  transportJacobian,
FreeVector &  derivatives,
BoundToFreeMatrix &  jacToGlobal,
FreeVector &  parameters,
const ParticleHypothesis &  particleHypothesis,
bool  covTransport,
double  accumulatedPath,
const Surface surface,
const FreeToBoundCorrection &  freeToBoundCorrection = FreeToBoundCorrection(false) 
)

It does not check if the transported state is at the surface, this needs to be guaranteed by the propagator.

Create and return the bound state at the current position

Parameters
[in]geoContextThe geometry context
[in,out]covarianceMatrixThe covariance matrix of the state
[in,out]jacobianFull jacobian since the last reset
[in,out]transportJacobianGlobal jacobian since the last reset
[in,out]derivativesPath length derivatives of the free, nominal parameters
[in,out]jacToGlobalProjection jacobian of the last bound parametrisation to free parameters
[in,out]parametersFree, nominal parametrisation
[in]particleHypothesisParticle hypothesis
[in]covTransportDecision whether the covariance transport should be performed
[in]accumulatedPathPropagated distance
[in]surfaceTarget surface on which the state is represented
[in]freeToBoundCorrectionCorrection for non-linearity effect during transform from free to bound
Returns
A bound state:
  • the parameters at the surface
  • the stepwise jacobian towards it (from last bound)
  • and the path length (from start - for ordering)

Definition at line 267 of file CovarianceEngine.cpp.

View newest version in sPHENIX GitHub at line 267 of file CovarianceEngine.cpp

References Acts::Test::cov, Acts::Surface::getSharedPtr(), std::tr1::make_tuple(), testing::internal::move(), particleHypothesis, transformFreeToBoundParameters(), and transportCovarianceToBound().

Referenced by Acts::CombinatorialKalmanFilter< propagator_t, traj_t >::Actor< source_link_accessor_t, parameters_t >::addNonSourcelinkState(), Acts::Test::BOOST_AUTO_TEST_CASE(), Acts::StraightLineStepper::boundState(), Acts::EigenStepper< extensionlist_t, auctioneer_t >::boundState(), Acts::MultiEigenStepperLoop< extensionlist_t, component_reducer_t, auctioneer_t >::ComponentProxy::boundState(), Acts::MultiEigenStepperLoop< extensionlist_t, component_reducer_t, auctioneer_t >::boundState(), Acts::CombinatorialKalmanFilter< propagator_t, traj_t >::Actor< source_link_accessor_t, parameters_t >::createSourceLinkTrackStates(), Acts::CombinatorialKalmanFilter< propagator_t, traj_t >::Actor< source_link_accessor_t, parameters_t >::filter(), Acts::Test::StepWiseActor::operator()(), and test_component_bound_state().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

BoundMatrix Acts::detail::boundToBoundTransportJacobian ( const GeometryContext &  geoContext,
const FreeVector &  freeParameters,
const BoundToFreeMatrix &  boundToFreeJacobian,
const FreeMatrix &  freeTransportJacobian,
const FreeVector &  freeToPathDerivatives,
const Surface surface 
)

This function calculates the full transport jacobian from a bound curvilinear representation to a new bound representation.

Note
Modifications of the jacobian related to the projection onto a surface is considered. Since a variation of the start parameters within a given uncertainty would lead to a variation of the end parameters, these need to be propagated onto the target surface. This an approximated approach to treat the (assumed) small change.
Parameters
[in]geoContextThe geometry Context
[in]freeParametersFree, nominal parametrisation
[in]boundToFreeJacobianJacobian from bound to free at start
[in]freeTransportJacobianTransport jacobian free to free
[in]freeToPathDerivativesPath length derivatives for free parameters
[in]surfaceTarget surface
Note
jac(locA->locB) = jac(gloB->locB)*(1+ pathCorrectionFactor(gloB))*jacTransport(gloA->gloB) *jac(locA->gloA)
Returns
a 6x6 transport jacobian from bound to bound

Definition at line 129 of file JacobianEngine.cpp.

View newest version in sPHENIX GitHub at line 129 of file JacobianEngine.cpp

References Acts::Surface::freeToBoundJacobian(), and Acts::Surface::freeToPathDerivative().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

BoundMatrix Acts::detail::boundToCurvilinearTransportJacobian ( const Vector3 &  direction,
const BoundToFreeMatrix &  boundToFreeJacobian,
const FreeMatrix &  freeTransportJacobian,
const FreeVector &  freeToPathDerivatives 
)

This function calculates the full jacobian from a given bound/curvilinear parameterisation from a surface to new curvilinear parameterisation.

Note
Modifications of the jacobian related to the projection onto a curvilinear surface is considered. Since a variation of the start parameters within a given uncertainty would lead to a variation of the end parameters, these need to be propagated onto the target surface. This is an approximated approach to treat the (assumed) small change.
Parameters
[in]directionNormalised direction vector
[in]boundToFreeJacobianJacobian from bound to free at start
[in]freeTransportJacobianTransport jacobian free to free
[in]freeToPathDerivativesPath length derivatives for free parameters
Note
The parameter surface is only required if projected to bound parameters. In the case of curvilinear parameters the geometry and the position is known and the calculation can be simplified
Returns
a 6x6 transport jacobian from curilinear to bound

Definition at line 148 of file JacobianEngine.cpp.

View newest version in sPHENIX GitHub at line 148 of file JacobianEngine.cpp

References Acts::eFreePos0, and freeToCurvilinearJacobian().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

BoundToFreeMatrix Acts::detail::boundToFreeTransportJacobian ( const BoundToFreeMatrix &  boundToFreeJacobian,
const FreeMatrix &  freeTransportJacobian 
)

This function calculates the full jacobian from a given bound/curvilinear parameterisation from a new free parameterisation.

Parameters
[in]boundToFreeJacobianJacobian from bound to free at start
[in]freeTransportJacobianTransport jacobian free to free
Returns
a 8x6 transport jacobian from bound to free

Definition at line 165 of file JacobianEngine.cpp.

View newest version in sPHENIX GitHub at line 165 of file JacobianEngine.cpp

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

+ Here is the caller graph for this function:

at::Tensor Acts::detail::buildEdges ( at::Tensor &  embedFeatures,
float  rVal,
int  kVal,
bool  flipDirections = false 
)

Dispatches either to FRNN or KD-Tree based edge building

Parameters
embedFeaturesTensor of shape (n_nodes, embedding_dim)
rValradius for NN search
kValmax number of neighbours in NN search
flipDirectionsif we want to randomly flip directions of the edges after the edge building

Referenced by Acts::OnnxMetricLearning::buildEdgesWrapper().

+ Here is the caller graph for this function:

at::Tensor Acts::detail::buildEdgesFRNN ( at::Tensor &  embedFeatures,
float  rVal,
int  kVal,
bool  flipDirections = false 
)

Edge building using FRNN and CUDA. Raises an exception if not built with CUDA

at::Tensor Acts::detail::buildEdgesKDTree ( at::Tensor &  embedFeatures,
float  rVal,
int  kVal,
bool  flipDirections = false 
)

Edge building using the Acts KD-Tree implementation Note that this implementation has no maximum number of neighbours in the NN search. kVal is only a hint for reserving memory

Referenced by BOOST_AUTO_TEST_CASE().

+ Here is the caller graph for this function:

ActsScalar Acts::detail::calculateDeterminant ( const double fullCalibrated,
const double fullCalibratedCovariance,
TrackStateTraits::Covariance  predictedCovariance,
TrackStateTraits::Projector  projector,
unsigned int  calibratedSize 
)

Definition at line 21 of file GsfUtils.cpp.

View newest version in sPHENIX GitHub at line 21 of file GsfUtils.cpp

References H, N, value, and Acts::visit_measurement().

+ Here is the call graph for this function:

ActsScalar Acts::detail::calculateDeterminant ( const double fullCalibrated,
const double fullCalibratedCovariance,
TrackStateTraits< MultiTrajectoryTraits::MeasurementSizeMax, true >::Covariance  predictedCovariance,
TrackStateTraits< MultiTrajectoryTraits::MeasurementSizeMax, true >::Projector  projector,
unsigned int  calibratedSize 
)

Referenced by computePosteriorWeights().

+ Here is the caller graph for this function:

template<typename index_container_t , typename measured_t , typename residuals_t >
void Acts::detail::calculateResiduals ( BoundIndices  size,
const index_container_t &  indices,
const BoundVector &  reference,
const Eigen::MatrixBase< measured_t > &  measured,
Eigen::MatrixBase< residuals_t > &  residuals 
)
inline

Residuals between bound reference parameters and a measured subspace.

Template Parameters
index_container_tSequenceContainer for measured indices
measured_tMeasured parameters vector type
residuals_tResiduals vector type
Parameters
[in]sizeSize of the measured parameters subspace
[in]indicesIndices of measured subspace, must have size entries
[in]referenceReference bound parameters
[in]measuredMeasured parameters subspace
[out]residualsResulting residuals in the measured subspace
Note
The separate size parameter is also used to allow the selection of the correct residuals methods depending on the parameters type.

Definition at line 35 of file CalculateResiduals.hpp.

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

References assert, Acts::eBoundPhi, Acts::eBoundSize, i, and size.

Referenced by Acts::Measurement< BoundIndices, 3 >::residuals().

+ Here is the caller graph for this function:

template<typename index_container_t , typename measured_t , typename residuals_t >
void Acts::detail::calculateResiduals ( FreeIndices  size,
const index_container_t &  indices,
const FreeVector &  reference,
const Eigen::MatrixBase< measured_t > &  measured,
Eigen::MatrixBase< residuals_t > &  residuals 
)
inline

Residuals between free reference parameters and a measured subspace.

Template Parameters
index_container_tSequenceContainer for measured inidices
measured_tMeasured parameters vector type
residuals_tResiduals vector type
Parameters
[in]sizeSize of the measured parameters subspace
[in]indicesIndices of measured subspace, must have size entries
[in]referenceReference free parameters
[in]measuredMeasured parameters subspace
[out]residualsResulting residuals in the measured subspace
Note
The separate size parameter is also used to allow the selection of the correct residuals methods depending on the parameters type.

Definition at line 80 of file CalculateResiduals.hpp.

View newest version in sPHENIX GitHub at line 80 of file CalculateResiduals.hpp

References assert, Acts::eFreeSize, i, and size.

template<typename intersection_t , typename logger_t = std::false_type>
bool Acts::detail::checkIntersection ( const intersection_t &  intersection,
double  pLimit,
double  oLimit,
double  tolerance,
const Logger &  logger = getDummyLogger() 
)

This function checks if an intersection is valid for the specified path-limit and overstep-limit

Template Parameters
intersection_tType of the intersection object
logger_tThe logger type, which defaults to std::false_type to prevent the generation of logging code
Parameters
intersectionThe intersection to check
pLimitThe path-limit
oLimitThe overstep-limit
toleranceThe tolerance that is applied to the path-limit criterion
loggerA optionally supplied logger which prints out a lot of infos at VERBOSE level

Definition at line 294 of file Intersection.hpp.

View newest version in sPHENIX GitHub at line 294 of file Intersection.hpp

References Acts::ACTS_VERBOSE(), and Acts::Test::tolerance.

Referenced by ActsFatras::PlanarSurfaceMask::annulusMask(), Acts::GenericApproachDescriptor::approachSurface(), Acts::TrackingVolume::compatibleBoundaries(), Acts::Layer::compatibleSurfaces(), Acts::SurfaceReached::operator()(), ActsFatras::PlanarSurfaceMask::polygonMask(), ActsFatras::PlanarSurfaceMask::radialMask(), Acts::Layer::surfaceOnApproach(), and updateSingleSurfaceStatus().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::unordered_map< int, std::vector< int > > Acts::detail::clusterDuplicateTracks ( const std::multimap< int, std::pair< int, std::vector< int >>> &  trackMap)

Clusterise tracks based on shared hits

Parameters
trackMap: Multimap storing pair of track ID and vector of measurement ID. The keys are the number of measurement and are just there to facilitate the ordering.
Returns
an unordered map representing the clusters, the keys the ID of the primary track of each cluster and the store a vector of track IDs.

Definition at line 13 of file AmbiguityTrackClustering.cpp.

View newest version in sPHENIX GitHub at line 13 of file AmbiguityTrackClustering.cpp

Referenced by Acts::dbscanTrackClustering(), and ActsExamples::AmbiguityResolutionMLAlgorithm::execute().

+ Here is the caller graph for this function:

Acts::MaterialSlab Acts::detail::combineSlabs ( const MaterialSlab &  slab1,
const MaterialSlab &  slab2 
)

Compute the average properties for a combined slab of two materials.

slab1 Properties of the first material slab slab2 Properties of the second material slab

Returns
Material slab with the combined thickness and average parameters

The averaged material slab has the combined thickness of the two input slabs and assumes the two input materials are homogeneously and continuously mixed throughout the slab.

Definition at line 15 of file AverageMaterials.cpp.

View newest version in sPHENIX GitHub at line 15 of file AverageMaterials.cpp

References Acts::MaterialSlab::material(), thickness, Acts::MaterialSlab::thickness(), Acts::MaterialSlab::thicknessInL0(), Acts::MaterialSlab::thicknessInX0(), x0, and physmon_track_finding_ttbar::z.

Referenced by Acts::AccumulatedVolumeMaterial::accumulate(), Acts::AccumulatedMaterialSlab::accumulate(), BOOST_AUTO_TEST_CASE(), Acts::MaterialSlab::MaterialSlab(), and Acts::AccumulatedMaterialSlab::trackAverage().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename traj_t >
void Acts::detail::computePosteriorWeights ( const traj_t &  mt,
const std::vector< MultiTrajectoryTraits::IndexType > &  tips,
std::map< MultiTrajectoryTraits::IndexType, double > &  weights 
)

Reweight the components according to R. Frühwirth, "Track fitting with non-Gaussian noise". See also the implementation in Athena at PosteriorWeightsCalculator.cxx

Note
The weights are not renormalized!

Definition at line 166 of file GsfUtils.hpp.

View newest version in sPHENIX GitHub at line 166 of file GsfUtils.hpp

References KFPMath::a, KFPMath::b, calculateDeterminant(), configureMap::data, Acts::MultiTrajectoryTraits::MeasurementSizeMax, and filter::state.

Referenced by Acts::detail::GsfActor< bethe_heitler_approx_t, traj_t >::kalmanUpdate().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename component_t , typename component_projector_t >
auto Acts::detail::computeSymmetricKlDivergence ( const component_t &  a,
const component_t &  b,
const component_projector_t &  proj 
)

Computes the Kullback-Leibler distance between two components as shown in https://arxiv.org/abs/2001.00727v1 but ignoring the weights

Definition at line 22 of file SymmetricKlDistanceMatrix.hpp.

View newest version in sPHENIX GitHub at line 22 of file SymmetricKlDistanceMatrix.hpp

References assert, Acts::eBoundQOverP, and proj().

Referenced by Acts::detail::SymmetricKLDistanceMatrix::recomputeAssociatedDistances(), and Acts::detail::SymmetricKLDistanceMatrix::SymmetricKLDistanceMatrix().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

CurvilinearState Acts::detail::curvilinearState ( BoundSquareMatrix &  covarianceMatrix,
BoundMatrix &  jacobian,
FreeMatrix &  transportJacobian,
FreeVector &  derivatives,
BoundToFreeMatrix &  jacToGlobal,
const FreeVector &  parameters,
const ParticleHypothesis &  particleHypothesis,
bool  covTransport,
double  accumulatedPath 
)

This creates a curvilinear state.

Create and return a curvilinear state at the current position

Parameters
[in,out]covarianceMatrixThe covariance matrix of the state
[in,out]jacobianFull jacobian since the last reset
[in,out]transportJacobianGlobal jacobian since the last reset
[in,out]derivativesPath length derivatives of the free, nominal parameters
[in,out]jacToGlobalProjection jacobian of the last bound parametrisation to free parameters
[in]parametersFree, nominal parametrisation
[in]particleHypothesisParticle hypothesis
[in]covTransportDecision whether the covariance transport should be performed
[in]accumulatedPathPropagated distance
Returns
A curvilinear state:
  • the curvilinear parameters at given position
  • the stepweise jacobian towards it (from last bound)
  • and the path length (from start - for ordering)

Definition at line 303 of file CovarianceEngine.cpp.

View newest version in sPHENIX GitHub at line 303 of file CovarianceEngine.cpp

References Acts::Test::cov, Acts::eFreeDir0, Acts::eFreePos0, Acts::eFreePos1, Acts::eFreePos2, Acts::eFreeQOverP, Acts::eFreeTime, Acts::ePos0, Acts::ePos1, Acts::ePos2, Acts::eTime, std::tr1::make_tuple(), testing::internal::move(), Acts::Test::pos4(), and transportCovarianceToCurvilinear().

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), Acts::StraightLineStepper::curvilinearState(), Acts::EigenStepper< extensionlist_t, auctioneer_t >::curvilinearState(), and Acts::MultiEigenStepperLoop< extensionlist_t, component_reducer_t, auctioneer_t >::curvilinearState().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

BoundToFreeMatrix Acts::detail::curvilinearToFreeJacobian ( const Vector3 &  direction)

Evaluate the projection Jacobian from curvilinear to free parameters without transport jacobian.

Parameters
[in]directionNormalised direction vector
Returns
Projection Jacobian

Definition at line 63 of file JacobianEngine.cpp.

View newest version in sPHENIX GitHub at line 63 of file JacobianEngine.cpp

References Acts::eBoundLoc0, Acts::eBoundLoc1, Acts::eBoundPhi, Acts::eBoundQOverP, Acts::eBoundTheta, Acts::eBoundTime, Acts::eFreeDir0, Acts::eFreeDir1, Acts::eFreeDir2, Acts::eFreePos0, Acts::eFreePos1, Acts::eFreePos2, Acts::eFreeQOverP, Acts::eFreeTime, and Acts::VectorHelpers::evaluateTrigonomics().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename T >
T Acts::detail::difference_periodic ( T  lhs,
T  rhs,
T  range 
)
inline

Compute the minimal lhs - rhs using the periodicity.

Imagine you have two values within the nominal range: l is close to the lower edge and u is close to the upper edge. The naive difference between the two is almost as large as the range itself. If we move l to its equivalent value outside the nominal range, i.e. just above the upper edge, the effective absolute difference becomes smaller.

Note
The sign of the returned value can be different from lhs - rhs

Definition at line 37 of file periodic.hpp.

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

References physmon_vertexing::delta, and Acts::UnitConstants::T.

Referenced by BOOST_AUTO_TEST_CASE(), BOOST_DATA_TEST_CASE(), Acts::SingleSeedVertexFinder< spacepoint_t >::findTriplets(), gaussianMixtureCov(), Acts::SingleSeedVertexFinder< spacepoint_t >::tripletValidationAndUpdate(), ActsExamples::RootTrajectorySummaryWriter::writeT(), and ActsExamples::VertexPerformanceWriter::writeT().

+ Here is the caller graph for this function:

ActsMatrix< 7, 8 > Acts::detail::directionToAnglesJacobian ( const Vector3 &  direction)

This function calculates the jacobian from a free parameterisation to a mixed one with angular representation.

Parameters
directionThe direction of the track
Returns
the 7x8 jacobian for direction to angles relation

Definition at line 108 of file JacobianEngine.cpp.

View newest version in sPHENIX GitHub at line 108 of file JacobianEngine.cpp

References Acts::VectorHelpers::evaluateTrigonomics().

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), Acts::CovarianceCache::CovarianceCache(), and freeToFreeTransportJacobian().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

constexpr HashedString Acts::detail::fnv1a_32 ( char const *  s,
std::size_t  count 
)

Definition at line 22 of file HashedString.hpp.

View newest version in sPHENIX GitHub at line 22 of file HashedString.hpp

References physmon_ckf_tracking::u.

Referenced by fnv1a_32(), Acts::hashString(), and Acts::HashedStringLiteral::operator""_hash().

+ Here is the caller graph for this function:

constexpr HashedString Acts::detail::fnv1a_32 ( std::string_view  s)

Definition at line 27 of file HashedString.hpp.

View newest version in sPHENIX GitHub at line 27 of file HashedString.hpp

References fnv1a_32(), and physmon_ckf_tracking::u.

+ Here is the call graph for this function:

FreeToBoundMatrix Acts::detail::freeToBoundTransportJacobian ( const GeometryContext &  geoContext,
const FreeVector &  freeParameters,
const ActsMatrix< 7, 8 > &  directionToAnglesJacobian,
const ActsMatrix< 8, 7 > &  anglesToDirectionJacobian,
const FreeMatrix &  freeTransportJacobian,
const FreeVector &  freeToPathDerivatives,
const Surface surface 
)

This function calculates the full jacobian from a given free parameterisation to a new curvilinear bound parameterisation.

Note
Modifications of the jacobian related to the projection onto the target surface is considered. Since a variation of the start parameters within a given uncertainty would lead to a variation of the end parameters, these need to be propagated onto the target surface. This is an approximated approach to treat the (assumed) small change.
Parameters
[in]geoContextThe geometry Context
[in]freeParametersFree, nominal parametrisation
[in]directionToAnglesJacobianThe relation jacobian from dir to angle
[in]anglesToDirectionJacobianThe relation jacobian from angle to dir
[in]freeTransportJacobianTransport jacobian free to free
[in]freeToPathDerivativesPath length derivatives for free parameters
[in]surfaceThe target surface
Returns
the 6x8 transport jacobian from bound to free

Definition at line 173 of file JacobianEngine.cpp.

View newest version in sPHENIX GitHub at line 173 of file JacobianEngine.cpp

References anglesToDirectionJacobian(), Acts::Surface::freeToBoundJacobian(), and Acts::Surface::freeToPathDerivative().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

FreeToBoundMatrix Acts::detail::freeToCurvilinearJacobian ( const Vector3 &  direction)

Evaluate the projection Jacobian from free to curvilinear parameters without transport jacobian.

Parameters
[in]directionNormalised direction vector
Returns
Projection Jacobian

Definition at line 24 of file JacobianEngine.cpp.

View newest version in sPHENIX GitHub at line 24 of file JacobianEngine.cpp

References Acts::PhysicalConstants::c, Acts::eBoundLoc0, Acts::eBoundLoc1, Acts::eBoundPhi, Acts::eBoundQOverP, Acts::eBoundTheta, Acts::eBoundTime, Acts::eFreeDir0, Acts::eFreeDir1, Acts::eFreeDir2, Acts::eFreePos0, Acts::eFreePos1, Acts::eFreePos2, Acts::eFreeQOverP, Acts::eFreeTime, Acts::VectorHelpers::evaluateTrigonomics(), Acts::s_curvilinearProjTolerance, ambiguity_solver_full_chain::x, y, and physmon_track_finding_ttbar::z.

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), boundToCurvilinearTransportJacobian(), and freeToCurvilinearTransportJacobian().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

FreeToBoundMatrix Acts::detail::freeToCurvilinearTransportJacobian ( const Vector3 &  direction,
const ActsMatrix< 7, 8 > &  directionToAnglesJacobian,
const ActsMatrix< 8, 7 > &  anglesToDirectionJacobian,
const FreeMatrix &  freeTransportJacobian,
const FreeVector &  freeToPathDerivatives 
)

This function calculates the full transport jacobian from a free parameterisation to a bound one. Since a variation of the start parameters within a given uncertainty would lead to a variation of the end parameters, these need to be propagated onto the target surface. This an approximated approach to treat the (assumed) small change.

Parameters
[in]directionNormalised direction vector
[in]directionToAnglesJacobianThe relation jacobian from dir to angle
[in]anglesToDirectionJacobianThe relation jacobian from angle to dir
[in]freeTransportJacobianTransport jacobian free to free
[in]freeToPathDerivativesPath length derivatives for free
Returns
a 6x8 transport jacobian from curvilinear to free

Definition at line 192 of file JacobianEngine.cpp.

View newest version in sPHENIX GitHub at line 192 of file JacobianEngine.cpp

References anglesToDirectionJacobian(), and freeToCurvilinearJacobian().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

FreeMatrix Acts::detail::freeToFreeTransportJacobian ( const ActsMatrix< 7, 8 > &  directionToAnglesJacobian,
const ActsMatrix< 8, 7 > &  anglesToDirectionJacobian,
const FreeMatrix &  freeTransportJacobian 
)

This function calculates the free transfport jacobian from a free parameterisation.

Parameters
[in]directionToAnglesJacobianThe relation jacobian from dir to angle
[in]anglesToDirectionJacobianThe relation jacobian from angle to dir
[in]freeTransportJacobianTransport jacobian free to free
Returns
a 8x8 transport jacobian from free to free

Definition at line 209 of file JacobianEngine.cpp.

View newest version in sPHENIX GitHub at line 209 of file JacobianEngine.cpp

References directionToAnglesJacobian().

Referenced by Acts::transportCovarianceToFree().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<int D, typename components_t , typename projector_t , typename angle_desc_t >
auto Acts::detail::gaussianMixtureCov ( const components_t  components,
const ActsVector< D > &  mean,
double  sumOfWeights,
projector_t &&  projector,
const angle_desc_t &  angleDesc 
)

Definition at line 79 of file GaussianMixtureReduction.hpp.

View newest version in sPHENIX GitHub at line 79 of file GaussianMixtureReduction.hpp

References root_event_diff_np::cmp(), Acts::Test::cov, difference_periodic(), Acts::UnitConstants::m, and mean().

+ Here is the call graph for this function:

template<typename components_t , typename projector_t = Identity, typename angle_desc_t = AngleDescription<Surface::Plane>::Desc>
auto Acts::detail::gaussianMixtureMeanCov ( const components_t  components,
projector_t &&  projector = projector_t{},
const angle_desc_t &  angleDesc = angle_desc_t{} 
)

Combine multiple components into one representative track state object. The function takes iterators to allow for arbitrary ranges to be combined. The dimension of the vectors is infeared from the inputs.

Note
If one component does not contain a covariance, no covariance is computed.
The correct mean and variances for cyclic coordnates or spherical coordinates (theta, phi) must generally be computed using a special circular mean or in cartesian coordinates. This implements a approximation, which only works well for close components.
Template Parameters
components_tA range of components
projector_tA projector, which maps the component to a std::tuple< weight, mean, std::optional< cov > >
angle_desc_tA angle description object which defines the cyclic angles in the bound parameters

Definition at line 128 of file GaussianMixtureReduction.hpp.

View newest version in sPHENIX GitHub at line 128 of file GaussianMixtureReduction.hpp

Referenced by BOOST_AUTO_TEST_CASE(), mergeComponents(), and test_surface().

+ Here is the caller graph for this function:

template<typename traj_t , typename parameters_t = BoundTrackParameters>
std::pair<ActsDynamicMatrix, std::unordered_map<size_t, size_t> > Acts::detail::globalTrackParametersCovariance ( const traj_t &  multiTraj,
const size_t &  entryIndex 
)

Calculate the global track parameters covariance for a smoothed trajectory stored in MultiTrajecty based on formulas at Journal of Physics: Conference Series 219 (2010) 032028.

Template Parameters
source_link_tThe source link type of the trajectory
parameters_tThe track parameters type
Parameters
multiTrajThe MultiTrajectory containing the trajectory to be investigated
entryIndexThe trajectory entry index
Returns
The global track parameters covariance matrix and the starting row/column for smoothed states

Definition at line 38 of file KalmanGlobalCovariance.hpp.

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

References Acts::eBoundSize, and G.

Referenced by FitterTester::test_GlobalCovariance().

+ Here is the caller graph for this function:

auto Acts::detail::inverseTransformComponent ( double  transformed_weight,
double  transformed_mean,
double  transformed_var 
)
inline

Transform a gaussian component back from the [-inf, inf]-space to the usual space

Definition at line 53 of file BetheHeitlerApprox.hpp.

View newest version in sPHENIX GitHub at line 53 of file BetheHeitlerApprox.hpp

References root_event_diff_np::cmp(), Acts::detail::GaussianComponent::mean, Acts::detail::GaussianComponent::var, and Acts::detail::GaussianComponent::weight.

Referenced by Acts::AtlasBetheHeitlerApprox< NComponents, PolyDegree >::mixture().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename T >
constexpr T Acts::detail::ipow ( T  num,
unsigned int  pow 
)

Definition at line 27 of file grid_helper.hpp.

View newest version in sPHENIX GitHub at line 27 of file grid_helper.hpp

template<typename propagator_state_t , typename stepper_t , typename extensions_t , typename traj_t >
auto Acts::detail::kalmanHandleMeasurement ( const CalibrationContext &  calibrationContext,
propagator_state_t &  state,
const stepper_t &  stepper,
const extensions_t &  extensions,
const Surface surface,
const SourceLink source_link,
traj_t &  fittedStates,
const size_t  lastTrackIndex,
bool  doCovTransport,
const Logger &  logger,
const FreeToBoundCorrection &  freeToBoundCorrection = FreeToBoundCorrection(        false) 
) -> Result<typename traj_t::TrackStateProxy>

This function encapsulates the Kalman update performed on a MultiTrajectory for a single source link.

Template Parameters
propagator_state_tThe propagator state type
stepper_tThe stepper type
extensions_tThe type of the extensions used for the update
Parameters
stateThe propagator state
stepperThe stepper
extensionsThe extension used for the update
surfaceThe current surface
source_linkThe source-link used for the update
fittedStatesThe Multitrajectory to that we add the state
lastTrackIndexThe parent index for the new state in the MT
doCovTransportWhether to perform a covariance transport when computing the bound state or not
freeToBoundCorrectionCorrection for non-linearity effect during transform from free to bound (only corrected when performing CovTransport)

Definition at line 38 of file KalmanUpdateHelpers.hpp.

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

References ACTS_ERROR, Acts::ACTS_VERBOSE(), Acts::GeometryObject::geometryId(), Acts::Surface::getSharedPtr(), mask, Acts::MaterialFlag, Acts::MeasurementFlag, testing::internal::move(), Acts::OutlierFlag, Acts::ParameterFlag, ActsTests::PropagationDatasets::pathLength, and Acts::Surface::surfaceMaterial().

Referenced by Acts::KalmanFitter< propagator_t, traj_t >::Actor< parameters_t >::filter(), and Acts::detail::GsfActor< bethe_heitler_approx_t, traj_t >::kalmanUpdate().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename propagator_state_t , typename stepper_t , typename traj_t >
auto Acts::detail::kalmanHandleNoMeasurement ( propagator_state_t &  state,
const stepper_t &  stepper,
const Surface surface,
traj_t &  fittedStates,
const size_t  lastTrackIndex,
bool  doCovTransport,
const Logger &  logger,
const FreeToBoundCorrection &  freeToBoundCorrection = FreeToBoundCorrection(        false) 
) -> Result<typename traj_t::TrackStateProxy>

This function encapsulates what actions should be performed on a MultiTrajectory when we have no measurement. If there are no source links on surface, add either a hole or passive material TrackState entry multi trajectory. No storage allocation for uncalibrated/calibrated measurement and filtered parameter

Template Parameters
propagator_state_tThe propagator state type
stepper_tThe stepper type
Parameters
stateThe propagator state
stepperThe stepper
surfaceThe current surface
fittedStatesThe Multitrajectory to that we add the state
lastTrackIndexThe parent index for the new state in the MT
doCovTransportWhether to perform a covariance transport when computing the bound state or not
freeToBoundCorrectionCorrection for non-linearity effect during transform from free to bound (only corrected when performing CovTransport)

Definition at line 139 of file KalmanUpdateHelpers.hpp.

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

References Acts::ACTS_VERBOSE(), Acts::Surface::associatedDetectorElement(), Acts::GeometryObject::geometryId(), Acts::Surface::getSharedPtr(), Acts::HoleFlag, mask, Acts::MaterialFlag, testing::internal::move(), Acts::ParameterFlag, ActsTests::PropagationDatasets::pathLength, and Acts::Surface::surfaceMaterial().

Referenced by Acts::KalmanFitter< propagator_t, traj_t >::Actor< parameters_t >::filter(), and Acts::detail::GsfActor< bethe_heitler_approx_t, traj_t >::noMeasurementUpdate().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

constexpr int Acts::detail::length ( const char *  str)

Definition at line 33 of file HashedString.hpp.

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

template<typename component_t , typename component_projector_t , typename angle_desc_t >
auto Acts::detail::mergeComponents ( const component_t &  a,
const component_t &  b,
const component_projector_t &  proj,
const angle_desc_t &  angle_desc 
)

Definition at line 45 of file SymmetricKlDistanceMatrix.hpp.

View newest version in sPHENIX GitHub at line 45 of file SymmetricKlDistanceMatrix.hpp

References KFPMath::a, TauVsDIS_MachineLearning_Differentiation::array, assert, Acts::PhysicalConstants::c, gaussianMixtureMeanCov(), proj(), and check_smearing_config::ref.

Referenced by reduceWithKLDistanceImpl().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename T >
std::pair<T, T> Acts::detail::normalizePhiTheta ( T  phi,
T  theta 
)
inline

Ensure both phi and theta direction angles are within the allowed range.

Parameters
[in]phiTransverse direction angle
[in]thetaLongitudinal direction angle
Returns
pair<phi,theta> containing the updated angles

The phi angle is truly cyclic, i.e. all values outside the nominal range [-pi,pi) have a corresponding value inside nominal range, independent from the theta angle. The theta angle is more complicated. Imagine that the two angles describe a position on the unit sphere. If theta moves outside its nominal range [0,pi], we are moving over one of the two poles of the unit sphere along the great circle defined by phi. The angles still describe a valid position on the unit sphere, but to describe it with angles within their nominal range, both phi and theta need to be updated; when moving over the poles, phi needs to be flipped by 180degree to allow theta to remain within its nominal range.

Definition at line 79 of file periodic.hpp.

View newest version in sPHENIX GitHub at line 79 of file periodic.hpp

References radian_pos(), radian_sym(), and ActsTests::PropagationDatasets::theta.

Referenced by BOOST_DATA_TEST_CASE(), ActsExamples::ParticleSmearing::execute(), Acts::FullBilloirVertexFitter< input_track_t, linearizer_t >::fit(), Acts::Test::generateBoundParametersCovariance(), Acts::GenericBoundTrackParameters< ParticleHypothesis >::normalizePhiTheta(), and Acts::KalmanVertexTrackUpdater::update().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename component_range_t , typename projector_t >
void Acts::detail::normalizeWeights ( component_range_t &  cmps,
const projector_t &  proj 
)

Definition at line 50 of file GsfUtils.hpp.

View newest version in sPHENIX GitHub at line 50 of file GsfUtils.hpp

References assert, root_event_diff_np::cmp(), it, and proj().

Referenced by Acts::detail::GsfActor< bethe_heitler_approx_t, traj_t >::kalmanUpdate(), Acts::detail::GsfActor< bethe_heitler_approx_t, traj_t >::removeLowWeightComponents(), and Acts::detail::GsfActor< bethe_heitler_approx_t, traj_t >::updateStepper().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename T >
bool Acts::detail::operator< ( const CantorEdge< T > &  a,
const CantorEdge< T > &  b 
)

Definition at line 52 of file CantorEdge.hpp.

View newest version in sPHENIX GitHub at line 52 of file CantorEdge.hpp

References KFPMath::a, and KFPMath::b.

std::ostream& Acts::detail::operator<< ( std::ostream &  os,
StatesType  type 
)
inline

Definition at line 210 of file GsfUtils.hpp.

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

References TauVsDIS_MachineLearning_Differentiation::array, TauVsDIS_MachineLearning_Differentiation::names, os, and Acts::type.

template<typename T >
bool Acts::detail::operator== ( const CantorEdge< T > &  a,
const CantorEdge< T > &  b 
)

Definition at line 47 of file CantorEdge.hpp.

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

References Acts::detail::CantorEdge< T >::value().

+ Here is the call graph for this function:

at::Tensor Acts::detail::postprocessEdgeTensor ( at::Tensor  edges,
bool  removeSelfLoops = true,
bool  removeDuplicates = true,
bool  flipDirections = false 
)

Post process edges.

Referenced by BOOST_AUTO_TEST_CASE().

+ Here is the caller graph for this function:

void Acts::detail::printBoundParameters ( std::ostream &  os,
const Surface surface,
const BoundVector &  params,
const BoundSquareMatrix *  cov = nullptr 
)

Print bound track parameters content to the output stream.

Parameters
osThe output stream
surfaceBound parameters reference surface
paramsBound parameters vector
covOptional bound parameters covariance matrix

Definition at line 166 of file PrintParameters.cpp.

View newest version in sPHENIX GitHub at line 166 of file PrintParameters.cpp

References Acts::GeometryObject::geometryId(), Acts::Surface::name(), and printParameters().

+ Here is the call graph for this function:

void Acts::detail::printFreeParameters ( std::ostream &  os,
const FreeVector &  params,
const FreeMatrix *  cov = nullptr 
)

Print free track parameters content to the output stream.

Parameters
osThe output stream
paramsFree parameters vector
covOptional free parameters covariance matrix

Definition at line 179 of file PrintParameters.cpp.

View newest version in sPHENIX GitHub at line 179 of file PrintParameters.cpp

References printParameters().

+ Here is the call graph for this function:

void Acts::detail::printMeasurement ( std::ostream &  os,
BoundIndices  size,
const uint8_t *  indices,
const ActsScalar *  params,
const ActsScalar *  cov 
)

Print bound measurement content to the output stream.

Parameters
osThe output stream
sizeSize of the measurement space
indicesWhich parameters are measured, must contain size elements
paramsParameters vector data, must contain size elements
covOptional Covariance matrix data, must contain sizexsize elements

Definition at line 189 of file PrintParameters.cpp.

View newest version in sPHENIX GitHub at line 189 of file PrintParameters.cpp

References physmon_simulation::s, and size.

Referenced by Acts::Measurement< BoundIndices, 3 >::operator<<().

+ Here is the caller graph for this function:

void Acts::detail::printMeasurement ( std::ostream &  os,
FreeIndices  size,
const uint8_t *  indices,
const ActsScalar *  params,
const ActsScalar *  cov 
)

Print free measurement content to the output stream.

Parameters
osThe output stream
sizeSize of the measurement space
indicesWhich parameters are measured, must contain size elements
paramsParameters vector data, must contain size elements
covOptional Covariance matrix data, must contain sizexsize elements

Definition at line 198 of file PrintParameters.cpp.

View newest version in sPHENIX GitHub at line 198 of file PrintParameters.cpp

References physmon_simulation::s, and size.

template<typename T >
T Acts::detail::radian_pos ( T  x)
inline

Calculate the equivalent angle in the [0, 2*pi) range.

Definition at line 52 of file periodic.hpp.

View newest version in sPHENIX GitHub at line 52 of file periodic.hpp

References Acts::UnitConstants::T, and ambiguity_solver_full_chain::x.

Referenced by BOOST_DATA_TEST_CASE(), normalizePhiTheta(), and Acts::SingleSeedVertexFinder< spacepoint_t >::sortSpacepoints().

+ Here is the caller graph for this function:

template<typename T >
T Acts::detail::radian_sym ( T  x)
inline
Acts::detail::RotationToAxes Acts::detail::rotationToLocalAxesDerivative ( const RotationMatrix3 &  rotation)

Evaluate the derivative of local frame axes vector w.r.t. its rotation around global x/y/z axis : add parameter for rotation axis order.

Parameters
rotationThe rotation that help place the surface
Returns
Derivative of local frame x/y/z axis vector w.r.t. its rotation angles (extrinsic Euler angles) around global x/y/z axis

Definition at line 15 of file AlignmentHelper.cpp.

View newest version in sPHENIX GitHub at line 15 of file AlignmentHelper.cpp

References std::tr1::make_tuple(), and testing::internal::move().

Referenced by Acts::Surface::alignmentToBoundDerivativeWithoutCorrection(), Acts::ConeSurface::alignmentToPathDerivative(), Acts::CylinderSurface::alignmentToPathDerivative(), Acts::LineSurface::alignmentToPathDerivative(), Acts::Surface::alignmentToPathDerivative(), and Acts::Test::BOOST_AUTO_TEST_CASE().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double Acts::detail::roundWithPrecision ( double  val,
int  precision 
)
inline

Definition at line 22 of file StringHelpers.hpp.

View newest version in sPHENIX GitHub at line 22 of file StringHelpers.hpp

Referenced by Acts::toString().

+ Here is the caller graph for this function:

template<typename path_aborter_t , typename propagator_state_t , typename stepper_t >
void Acts::detail::setupLoopProtection ( propagator_state_t &  state,
const stepper_t &  stepper,
path_aborter_t &  pathAborter,
bool  releaseLimit,
const Logger &  logger 
)

Estimate the loop protection limit.

Definition at line 20 of file LoopProtection.hpp.

View newest version in sPHENIX GitHub at line 20 of file LoopProtection.hpp

References Acts::ACTS_VERBOSE(), ACTS_WARNING, ckf::field, and merge_hashes::p.

Referenced by Acts::Test::BOOST_DATA_TEST_CASE(), Acts::CombinatorialKalmanFilter< propagator_t, traj_t >::Actor< source_link_accessor_t, parameters_t >::finalize(), Acts::Propagator< stepper_t, navigator_t >::propagate(), and Acts::CombinatorialKalmanFilter< propagator_t, traj_t >::Actor< source_link_accessor_t, parameters_t >::reset().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename T >
std::vector<T> Acts::detail::tensor2DToVector ( const at::Tensor &  tensor)

Converts 2D tensor to vector Automatically converts tensor to target type!

Definition at line 74 of file TensorVectorConversion.hpp.

View newest version in sPHENIX GitHub at line 74 of file TensorVectorConversion.hpp

References assert.

Acts::FreeVector Acts::detail::transformBoundToFreeParameters ( const Surface surface,
const GeometryContext &  geoCtx,
const BoundVector &  boundParams 
)

Transform bound track parameters into equivalent free track parameters.

Parameters
surfaceSurface onto which the input parameters are bound
geoCtxGeometry context for the local-to-global transformation
boundParamsBound track parameters vector
Returns
Equivalent free trackparameters vector

Definition at line 18 of file TransformationBoundToFree.cpp.

View newest version in sPHENIX GitHub at line 18 of file TransformationBoundToFree.cpp

References Acts::eBoundLoc0, Acts::eBoundLoc1, Acts::eBoundPhi, Acts::eBoundQOverP, Acts::eBoundTheta, Acts::eBoundTime, Acts::eFreeDir0, Acts::eFreeDir1, Acts::eFreeDir2, Acts::eFreePos0, Acts::eFreePos1, Acts::eFreePos2, Acts::eFreeQOverP, Acts::eFreeTime, Acts::eMom0, Acts::eMom1, Acts::eMom2, Acts::ePos0, Acts::ePos1, Acts::ePos2, Acts::Surface::localToGlobal(), Acts::makeDirectionFromPhiTheta(), and position.

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), BOOST_DATA_TEST_CASE(), Acts::LineSurface::boundToFreeJacobian(), Acts::Surface::boundToFreeJacobian(), Acts::EDM4hepUtil::detail::convertTrackParametersToEdm4hep(), ActsAlignmentStates::fillAlignmentStateMap(), Acts::MultiTrajectoryHelpers::freeFiltered(), Acts::MultiTrajectoryHelpers::freeSmoothed(), meanFromFree(), Acts::StraightLineStepper::resetState(), Acts::EigenStepper< extensionlist_t, auctioneer_t >::resetState(), Acts::AtlasStepper::resetState(), transportCovarianceToBound(), ActsEvaluator::visitTrackStates(), and ActsExamples::RootTrajectoryStatesWriter::writeT().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void Acts::detail::transformComponent ( const GaussianComponent &  cmp,
double transformed_weight,
double transformed_mean,
double transformed_var 
)
inline

Transform a gaussian component to a space where all values are defined from [-inf, inf]

Definition at line 40 of file BetheHeitlerApprox.hpp.

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

References root_event_diff_np::cmp(), and mean().

+ Here is the call graph for this function:

Acts::Result< Acts::BoundVector > Acts::detail::transformFreeToBoundParameters ( const FreeVector &  freeParams,
const Surface surface,
const GeometryContext &  geoCtx,
ActsScalar  tolerance = s_onSurfaceTolerance 
)

Convert free track parameters to bound track parameters.

Parameters
freeParamsFree track parameters vector
surfaceSurface onto which the parameters are bound
geoCtxGeometry context for the global-to-local transformation
toleranceTolerance used for globalToLocal
Returns
Bound track parameters vector on the given surface

Definition at line 17 of file TransformationFreeToBound.cpp.

View newest version in sPHENIX GitHub at line 17 of file TransformationFreeToBound.cpp

References Acts::eBoundLoc0, Acts::eBoundLoc1, Acts::eBoundPhi, Acts::eBoundQOverP, Acts::eBoundTheta, Acts::eBoundTime, Acts::eFreeDir0, Acts::eFreePos0, Acts::eFreeQOverP, Acts::eFreeTime, Acts::ePos0, Acts::ePos1, Acts::Surface::globalToLocal(), ActsTests::PropagationDatasets::phi, position, and ActsTests::PropagationDatasets::theta.

Referenced by BOOST_DATA_TEST_CASE(), boundState(), Acts::EDM4hepUtil::detail::convertTrackParametersToEdm4hep(), Acts::GenericBoundTrackParameters< ParticleHypothesis >::create(), meanFromFree(), ActsFatras::BoundParametersSmearer< RandomEngine, kSmearDIM >::operator()(), and Acts::detail::CorrectedFreeToBoundTransformer::operator()().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Acts::Result< Acts::BoundVector > Acts::detail::transformFreeToBoundParameters ( const Vector3 &  position,
ActsScalar  time,
const Vector3 &  direction,
ActsScalar  qOverP,
const Surface surface,
const GeometryContext &  geoCtx,
ActsScalar  tolerance = s_onSurfaceTolerance 
)

Convert position and direction to bound track parameters.

Parameters
positionGlobal track three-position
timeGlobal track time
directionGlobal direction three-vector; normalization is ignored.
qOverPCharge-over-momentum-like parameter
surfaceSurface onto which the parameters are bound
geoCtxGeometry context for the global-to-local transformation
toleranceTolerance used for globalToLocal
Returns
Equivalent bound parameters vector on the given surface

Definition at line 41 of file TransformationFreeToBound.cpp.

View newest version in sPHENIX GitHub at line 41 of file TransformationFreeToBound.cpp

References Acts::eBoundLoc0, Acts::eBoundLoc1, Acts::eBoundPhi, Acts::eBoundQOverP, Acts::eBoundTheta, Acts::eBoundTime, Acts::ePos0, Acts::ePos1, Acts::Surface::globalToLocal(), ActsTests::PropagationDatasets::phi, ActsTests::PropagationDatasets::theta, and Acts::Test::time.

+ Here is the call graph for this function:

Acts::BoundVector Acts::detail::transformFreeToCurvilinearParameters ( ActsScalar  time,
const Vector3 &  direction,
ActsScalar  qOverP 
)

Convert direction to curvilinear track parameters.

Parameters
timeGlobal track time
directionGlobal direction three-vector; normalization is ignored.
qOverPCharge-over-momentum-like parameter
Returns
Equivalent bound parameters vector on the curvilinear surface
Note
The parameters are assumed to be defined at the origin of the curvilinear frame derived from the direction vector. The local coordinates are zero by construction.

Definition at line 76 of file TransformationFreeToBound.cpp.

View newest version in sPHENIX GitHub at line 76 of file TransformationFreeToBound.cpp

References Acts::eBoundPhi, Acts::eBoundQOverP, Acts::eBoundTheta, Acts::eBoundTime, ActsTests::PropagationDatasets::phi, ActsTests::PropagationDatasets::theta, and Acts::Test::time.

Referenced by BOOST_DATA_TEST_CASE(), and Acts::MultiComponentCurvilinearTrackParameters::construct().

+ Here is the caller graph for this function:

Acts::BoundVector Acts::detail::transformFreeToCurvilinearParameters ( ActsScalar  time,
ActsScalar  phi,
ActsScalar  theta,
ActsScalar  qOverP 
)

Convert direction angles to curvilinear track parameters.

Parameters
timeGlobal track time
phiGlobal transverse direction angle
thetaGlobal longitudinal direction angle
qOverPCharge-over-momentum-like parameter
Returns
Equivalent bound parameters vector on the curvilinear surface
Note
The parameters are assumed to be defined at the origin of the curvilinear frame derived from the direction angles. The local coordinates are zero by construction.

Definition at line 65 of file TransformationFreeToBound.cpp.

View newest version in sPHENIX GitHub at line 65 of file TransformationFreeToBound.cpp

References Acts::eBoundPhi, Acts::eBoundQOverP, Acts::eBoundTheta, Acts::eBoundTime, ActsTests::PropagationDatasets::phi, ActsTests::PropagationDatasets::theta, and Acts::Test::time.

void Acts::detail::transportCovarianceToBound ( const GeometryContext &  geoContext,
BoundSquareMatrix &  boundCovariance,
BoundMatrix &  fullTransportJacobian,
FreeMatrix &  freeTransportJacobian,
FreeVector &  freeToPathDerivatives,
BoundToFreeMatrix &  boundToFreeJacobian,
FreeVector &  freeParameters,
const Surface surface,
const FreeToBoundCorrection &  freeToBoundCorrection = FreeToBoundCorrection(false) 
)

Method for on-demand covariance transport of a bound/curvilinear to another bound representation.

Parameters
[in]geoContextThe geometry context
[in,out]boundCovarianceThe covariance matrix of the state
[in,out]fullTransportJacobianFull jacobian since the last reset
[in,out]freeTransportJacobianGlobal jacobian since the last reset
[in,out]freeToPathDerivativesPath length derivatives
[in,out]boundToFreeJacobianProjection jacobian of the last bound parametrisation to free parameters
[in,out]freeParametersFree, nominal parametrisation
[in]surfaceis the surface to which the covariance is forwarded to
[in]freeToBoundCorrectionCorrection for non-linearity effect during transform from free to bound
Note
No check is done if the position is actually on the surface

Definition at line 343 of file CovarianceEngine.cpp.

View newest version in sPHENIX GitHub at line 343 of file CovarianceEngine.cpp

References transformBoundToFreeParameters().

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), boundState(), Acts::StraightLineStepper::transportCovarianceToBound(), and Acts::EigenStepper< extensionlist_t, auctioneer_t >::transportCovarianceToBound().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void Acts::detail::transportCovarianceToCurvilinear ( BoundSquareMatrix &  boundCovariance,
BoundMatrix &  fullTransportJacobian,
FreeMatrix &  freeTransportJacobian,
FreeVector &  freeToPathDerivatives,
BoundToFreeMatrix &  boundToFreeJacobian,
const Vector3 &  direction 
)

Method for on-demand covariance transport of a bound/curvilinear to a new curvilinear representation.

Parameters
[in,out]boundCovarianceThe covariance matrix of the state
[in,out]fullTransportJacobianFull jacobian since the last reset
[in,out]freeTransportJacobianGlobal jacobian since the last reset
[in,out]freeToPathDerivativesPath length derivatives
[in,out]boundToFreeJacobianProjection jacobian of the last bound parametrisation to free parameters
[in]directionNormalised direction vector

Definition at line 398 of file CovarianceEngine.cpp.

View newest version in sPHENIX GitHub at line 398 of file CovarianceEngine.cpp

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), curvilinearState(), Acts::StraightLineStepper::transportCovarianceToCurvilinear(), and Acts::EigenStepper< extensionlist_t, auctioneer_t >::transportCovarianceToCurvilinear().

+ Here is the caller graph for this function:

template<typename stepper_t , typename object_intersection_t >
void Acts::detail::updateSingleStepSize ( typename stepper_t::State &  state,
const object_intersection_t &  oIntersection,
bool  release = true 
)

Update the Step size - single component

It takes a (valid) object intersection from the compatibleX(...) calls in the geometry and updates the step size

Parameters
state[in,out] The stepping state (thread-local cache)
oIntersection[in] The object that yielded this step size
release[in] A release flag

Definition at line 80 of file SteppingHelper.hpp.

View newest version in sPHENIX GitHub at line 80 of file SteppingHelper.hpp

References Acts::ConstrainedStep::actor, and Acts::Test::stepSize.

template<typename stepper_t >
Acts::Intersection3D::Status Acts::detail::updateSingleSurfaceStatus ( const stepper_t &  stepper,
typename stepper_t::State &  state,
const Surface surface,
Direction  navDir,
const BoundaryCheck &  bcheck,
ActsScalar  surfaceTolerance,
const Logger &  logger 
)

Update surface status - Single component

This method intersect the provided surface and update the navigation step estimation accordingly (hence it changes the state). It also returns the status of the intersection to trigger onSurface in case the surface is reached.

Parameters
state[in,out] The stepping state (thread-local cache)
surface[in] The surface provided
bcheck[in] The boundary check for this status update

Definition at line 34 of file SteppingHelper.hpp.

View newest version in sPHENIX GitHub at line 34 of file SteppingHelper.hpp

References Acts::ConstrainedStep::aborter, Acts::ConstrainedStep::actor, Acts::ACTS_VERBOSE(), checkIntersection(), Acts::GeometryObject::geometryId(), Acts::Surface::intersect(), and logger().

+ Here is the call graph for this function:

template<typename T >
at::Tensor Acts::detail::vectorToTensor2D ( std::vector< T > &  vec,
std::size_t  cols 
)

Converts vector to 2D tensor Make sure your vector has a even number of elements! Input must be mutable, due to torch API. Tensor does not take ownership! .clone() afterwards to get ownership of the data

Definition at line 60 of file TensorVectorConversion.hpp.

View newest version in sPHENIX GitHub at line 60 of file TensorVectorConversion.hpp

References assert, and parse_cmake_options::opts.

Referenced by BOOST_AUTO_TEST_CASE(), BuildEdgesKDTree< Dim >::invoke(), and Acts::TorchMetricLearning::operator()().

+ Here is the caller graph for this function:

template<typename traj_t >
void Acts::detail::voidFitterCalibrator ( const GeometryContext &  ,
const CalibrationContext &  ,
const SourceLink ,
typename traj_t::TrackStateProxy   
)

Definition at line 23 of file VoidFitterComponents.hpp.

View newest version in sPHENIX GitHub at line 23 of file VoidFitterComponents.hpp

template<typename traj_t >
Result<void> Acts::detail::voidFitterSmoother ( const GeometryContext &  ,
traj_t &  trackStates,
size_t  entry,
const Logger &   
)

Definition at line 41 of file VoidFitterComponents.hpp.

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

template<typename traj_t >
Result<void> Acts::detail::voidFitterUpdater ( const GeometryContext &  ,
typename traj_t::TrackStateProxy  trackState,
Direction  ,
const Logger &   
)

Definition at line 31 of file VoidFitterComponents.hpp.

View newest version in sPHENIX GitHub at line 31 of file VoidFitterComponents.hpp

template<typename traj_t >
bool Acts::detail::voidOutlierFinder ( typename traj_t::ConstTrackStateProxy  )

Definition at line 53 of file VoidFitterComponents.hpp.

View newest version in sPHENIX GitHub at line 53 of file VoidFitterComponents.hpp

template<typename traj_t >
bool Acts::detail::voidReverseFilteringLogic ( typename traj_t::ConstTrackStateProxy  )

Definition at line 58 of file VoidFitterComponents.hpp.

View newest version in sPHENIX GitHub at line 58 of file VoidFitterComponents.hpp

const Surface* Acts::detail::voidSurfaceAccessor ( const SourceLink )
inline

Definition at line 63 of file VoidFitterComponents.hpp.

View newest version in sPHENIX GitHub at line 63 of file VoidFitterComponents.hpp

template<typename component_range_t , typename projector_t >
bool Acts::detail::weightsAreNormalized ( const component_range_t &  cmps,
const projector_t &  proj,
double  tol = s_normalizationTolerance 
)

Definition at line 37 of file GsfUtils.hpp.

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

References it, and proj().

Referenced by Acts::detail::ScopedGsfInfoPrinterAndChecker< propagator_state_t, stepper_t, navigator_t >::checks(), and Acts::detail::GsfActor< bethe_heitler_approx_t, traj_t >::operator()().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename T >
T Acts::detail::wrap_periodic ( T  value,
T  start,
T  range 
)
inline

Wrap a periodic value back into the nominal range.

Definition at line 18 of file periodic.hpp.

View newest version in sPHENIX GitHub at line 18 of file periodic.hpp

References start, and Acts::UnitConstants::T.

Referenced by test_surface().

+ Here is the caller graph for this function:

Variable Documentation

template<bool... values>
constexpr bool Acts::detail::all_of_v = all_of<values...>::value

Definition at line 30 of file all_of.hpp.

View newest version in sPHENIX GitHub at line 30 of file all_of.hpp

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), Fatras::SelectorListAXOR< inclusive, selectors >::operator()(), and Fatras::PhysicsList< processes >::operator()().

template<bool... values>
constexpr bool Acts::detail::any_of_v = any_of<values...>::value

Definition at line 30 of file any_of.hpp.

View newest version in sPHENIX GitHub at line 30 of file any_of.hpp

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().

template<typename T >
constexpr bool Acts::detail::has_action_type_v
Initial value:
=
decltype(action_type_extractor::predicate(hana::type_c<T>))::value

Meta function which returns a compile time bool

Template Parameters
Tthe type to check

Definition at line 99 of file type_collector.hpp.

View newest version in sPHENIX GitHub at line 99 of file type_collector.hpp

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().

template<typename... Args>
constexpr bool Acts::detail::has_duplicates_v = has_duplicates<Args...>::value

Definition at line 45 of file has_duplicates.hpp.

View newest version in sPHENIX GitHub at line 45 of file has_duplicates.hpp

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().

template<typename T >
constexpr bool Acts::detail::has_result_type_v
Initial value:
=
decltype(result_type_extractor::predicate(hana::type_c<T>))::value

Meta function which returns a compile time bool

Template Parameters
Tthe type to check

Definition at line 84 of file type_collector.hpp.

View newest version in sPHENIX GitHub at line 84 of file type_collector.hpp

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().

template<typename indices_t >
constexpr size_t Acts::detail::kParametersSize = ParametersTraitsImpl<indices_t>::kSize

The maximum parameters vector size definable for an indices enum.

Definition at line 171 of file ParameterTraits.hpp.

View newest version in sPHENIX GitHub at line 171 of file ParameterTraits.hpp

constexpr auto Acts::detail::type_collector
Initial value:
= [](auto t_, auto predicate, auto extractor) {
constexpr auto have_result =
hana::filter(t_, [&](auto t) { return predicate(t); });
constexpr auto result_types =
hana::to_set(hana::transform(have_result, extractor));
return result_types;
}

The main type collector. This loops over the given tuple of actions or aborters, filters by predicate and uses extractor to construct a resulting output set.

Definition at line 55 of file type_collector.hpp.

View newest version in sPHENIX GitHub at line 55 of file type_collector.hpp

template<typename helper , typename... items>
constexpr auto Acts::detail::type_collector_t
Initial value:
= type_collector(hana::tuple_t<items...>,
helper::predicate,
helper::extractor)

Helper around type_collector which constructrs a hana tuple input from variadic template args, and pre-unpacks the predicate and extractor from the helper type

Template Parameters
helperEither result_type_extractor or action_type_extractor
itemsThe items to filter / collect from.

Definition at line 75 of file type_collector.hpp.

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

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().