File Common.hpp

namespace Acts

Note

This file is foreseen for the Geometry module to replace Extent

Enums

enum CoordinateIndices

Components of coordinate vectors.

To be used to access coordinate components by named indices instead of magic numbers. This must be a regular enum and not a scoped enum class to allow implicit conversion to an integer. The enum value are thus visible directly in namespace Acts.

This index enum is not user-configurable (in contrast e.g. to the track parameter index enums) since it must be compatible with varying dimensionality (2d-4d) and other access methods (.{x,y,z}() accessors).

Values:

enumerator ePos0
enumerator ePos1
enumerator ePos2
enumerator eTime
enumerator eMom0
enumerator eMom1
enumerator eMom2
enumerator eEnergy
enumerator eX
enumerator eY
enumerator eZ
enum MaterialUpdateStage

This is a steering enum to tell which material update stage:

  • PreUpdate : update on approach of a surface

  • FullUpdate : update when passing a surface

  • PostUpdate : update when leaving a surface

Values:

enumerator PreUpdate
enumerator FullUpdate
enumerator PostUpdate
enum NavigationDirection

The navigation direction is always with respect to a given momentum or direction.

Values:

enumerator Backward
enumerator Forward
enum NoiseUpdateMode

to tell how to deal with noise term in covariance transport

  • removeNoise: subtract noise term

  • addNoise: add noise term

Values:

enumerator removeNoise
enumerator addNoise

Functions

inline constexpr NavigationDirection directionFromStepSize(double value)
inline constexpr auto operator*(NavigationDirection dir, int value)
inline constexpr auto operator*(NavigationDirection dir, float value)
inline constexpr auto operator*(NavigationDirection dir, double value)
inline Acts::Vector3 operator*(NavigationDirection dir, Acts::Vector3 value)
inline constexpr auto operator*(int value, NavigationDirection dir)
inline constexpr auto operator*(float value, NavigationDirection dir)
inline constexpr auto operator*(double value, NavigationDirection dir)
inline Acts::Vector3 operator*(Acts::Vector3 value, NavigationDirection dir)
inline constexpr auto operator*=(int &value, NavigationDirection dir)
inline constexpr auto operator*=(float &value, NavigationDirection dir)
inline constexpr auto operator*=(double &value, NavigationDirection dir)
inline Acts::Vector3 &operator*=(Acts::Vector3 &value, NavigationDirection dir)
std::ostream &operator<<(std::ostream &os, NavigationDirection navDir)
std::ostream &operator<<(std::ostream &os, MaterialUpdateStage matUpdate)

Variables

static constexpr ActsScalar s_curvilinearProjTolerance = 0.999995

Tolerance for not being within curvilinear projection this allows using the same curvilinear frame to eta = 6, validity tested with IntegrationTests/PropagationTest.

static constexpr ActsScalar s_epsilon = 3 * std::numeric_limits<ActsScalar>::epsilon()

Tolerance for being numerical equal for geometry building.

static constexpr ActsScalar s_onSurfaceTolerance = 1e-4

Tolerance for being on Surface.

Note

This is intentionally given w/o an explicit unit to avoid having to include the units header unneccessarily. With the native length unit of mm this corresponds to 0.1um.