ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts Namespace Reference

The main namespace encompassing all ACTS code. More...

Namespaces

namespace  DetrayJsonHelper
namespace  Experimental
 Contains code that is not considered stable yet and might change.
namespace  GridAxisGenerators
 Axis generators are used to allow defining different grid types for indexed geometry objects.
namespace  MultiTrajectoryTraits
 This namespace contains typedefs and constant values that are used by other parts of the MultiTrajectory implementation.
namespace  ParticleIdHelper
 Particle identification based on PDG number.
namespace  PhysicalConstants
 Physical constants in native units.
namespace  UnitConstants
 Constants and helper literals for physical units.
namespace  UnitLiterals
 Namespace for user-defined literals for physical units.

Classes

class  AccumulatedMaterialSlab
 Accumulate material properties from multiple hits/track and multiple tracks. More...
class  AccumulatedSurfaceMaterial
 This class is used by the SurfaceMaterialMapper in order to accumulate/collect material information during the mapping process. More...
class  AccumulatedVolumeMaterial
 Accumulate and average volume-based material properties. More...
struct  ActorHasResultStruct
 Helper struct exposing ActorHasResult as a boolean. More...
struct  ActorList
 ActorList implementation to be used with the propagator. More...
struct  ActorResultTypeExtractor
 Extract the result type of an actor. More...
class  AdaptiveGridDensityVertexFinder
 Vertex finder that makes use of a track density grid. More...
class  AdaptiveGridTrackDensity
 Implements a 1D (no time seeding) / 2D (time seeding) grid that is filled with track densities. More...
class  AdaptiveMultiVertexFinder
 Implements an iterative vertex finder. More...
class  AdaptiveMultiVertexFitter
 Implements an adaptive multi-vertex fitter as described in detail in Section 5.3.5 in: Ref. More...
class  AmbiguityResolutionML
 Generic implementation of the machine learning ambiguity resolution Contains method for data preparations. More...
class  AnnealingUtility
 Implements a deterministic thermodynamic annealing scheme Ref. More...
class  AnnulusBounds
 Class that implements a (potentially asymmetric) bounds with difference between surface bound center and surface coordinate center. More...
class  AnyBase
 Small opaque type-erased type with configurable small buffer optimization. More...
class  AnyBaseAll
 Base class for all instances of AnyBase regarfless of SBO size. More...
class  AnyGridConstView
 Type-safe view into a grid with const access. More...
class  AnyGridView
 Type-safe view into a grid with mutable access. More...
struct  AnySurfaceReached
 Aborter that checks if the propagation has reached any surface. More...
class  AnyTrack
class  AnyTrackProxy
 Type-erased track object This class provides a type-erased interface to track proxies without requiring heap allocation per instance. More...
class  AnyTrackStateProxy
 Type-erased track state proxy for any trajectory backend. More...
class  AppendOnlyNavigationStream
 Append-only helper to add candidates to a navigation stream. More...
class  ApproachDescriptor
 Virtual base class to decide and return which approaching surface to be taken, the surfaces are std::shared_ptr, as they can be the boundary surfaces of the representingVolume of the Layer. More...
class  AssertionFailureException
 Exception type for assertion failures This class captures the information available to the throw_assert macro. More...
class  AtlasBetheHeitlerApprox
 This class approximates the Bethe-Heitler distribution as a gaussian mixture. More...
class  AtlasStepper
 the AtlasStepper implementation for the More...
class  AveragingScopedTimer
 A timer class that measures and averages execution times of multiple samples. More...
class  Axis
 calculate bin indices from a given binning structure More...
class  Axis< AxisType::Equidistant, bdt >
 calculate bin indices for an equidistant binning More...
class  Axis< AxisType::Variable, bdt >
 calculate bin indices for a variable binning More...
class  AxisAlignedBoundingBox
 Implementation of an Axis Aligned Bounding Box. More...
struct  AxisBoundaryTypeTag
 Tag helper type for Axis constructors with class template deduction. More...
struct  AxisDirectionReferenceGenerator
 A struct to access reference positions based on bin values. More...
class  BasePropagator
 Common simplified base interface for propagators. More...
class  BetheHeitlerApprox
 Interface for Bethe-Heitler Gaussian mixture approximations. More...
class  BetheHeitlerApproxSingleCmp
 This class approximates the Bethe-Heitler with only one component. More...
class  BinnedArray
 Pure virtual base class for Binned Array to avoid map searches. More...
class  BinnedArrayXD
 Avoiding a map search, the templated BinnedArray class can help ordereing geometrical objects by providing a dedicated BinUtility. More...
class  BinnedGroup
class  BinnedGroupIterator
 Iterator over a binned group grid neighborhood. More...
class  BinnedSurfaceMaterial
 It extends the ISurfaceMaterial base class and is an array pf MaterialSlab. More...
class  BinnedSurfaceMaterialAccumulator
 The binned surface material accumulator. More...
class  BinningData
 This class holds all the data necessary for the bin calculation. More...
class  BinUtility
 The BinUtility class that translated global and local position into a bins of a BinnedArray, most performant is equidistant binning without a transform, however, optionally a transform can be provided, e.g. More...
class  BoundarySurfaceT
class  BoundaryTolerance
 Variant-like type to capture different types of boundary tolerances. More...
class  BoundFactory
 Factory helper class to construct volume or surface bounds where the constructed bounds are cached inside the factory and if the same bound parameters are requested at a later stage the factory automatically returns the cached bounds. More...
class  BoundTrackParameters
 Track parameters bound to a reference surface for a single track. More...
class  BroadTripletSeedFilter
 Triplet seed filter used in the triplet seeding algorithm. More...
class  CalibrationContext
 This is the central definition of the Acts payload object regarding detector calibration. More...
class  CandidatesForMiddleSp
 The CandidatesForMiddleSp collects the triplet candidates given a fixed middle space point. More...
struct  CenterReferenceGenerator
 A struct to access the center position as a sole reference. More...
class  ChargeHypothesis
 Charge and momentum interpretation for arbitrarily charged particles. More...
class  CloneablePtr
 A copyable smart pointer that uses a cloner function to copy the managed object. More...
struct  Color
 Struct describing a color. More...
class  CombinatorialKalmanFilter
 Combinatorial Kalman filter to find tracks. More...
struct  CombinatorialKalmanFilterExtensions
 Extension struct which holds the delegates to customize the CKF behavior. More...
struct  CombinatorialKalmanFilterOptions
 Combined options for the combinatorial Kalman filter. More...
struct  CombinatorialKalmanFilterResult
 Result container for the combinatorial Kalman filter actor. More...
 Composite portal links can graft together other portal link instances, for example grids that could not be merged due to invalid binnings. More...
class  ConeBounds
 Bounds for a conical surface, the opening angle is stored in \( \tan(\alpha) \) and always positively defined. More...
class  ConeLayer
 Class to describe a conical detector layer for tracking, it inherits from both, Layer base class and ConeSurface class. More...
class  ConeSurface
 Class for a conical surface in the Tracking geometry. More...
class  ConeVolumeBounds
 Volume bound class for describing conical volumes either with cylindrical inlay or outer boundary, it also allows for a sectoral description. More...
class  ConstantBField
 The simplest magnetic field implementation is a constant field, which returns the same field values at every queried location. More...
class  ConstrainedStep
 A constrained step class for the steppers. More...
struct  ConstRefHolder
 Non-owning holder for referencing a backend with const access. More...
class  ConstVectorMultiTrajectory
 Const version of VectorMultiTrajectory. More...
class  ConstVectorTrackContainer
 Read-only vector-backed track container. More...
class  ConvexPolygonBounds
 This is the actual implementation of the bounds. More...
class  ConvexPolygonBounds< PolygonDynamic >
 This is the specialization handling a polygon with a dynamic number of points. More...
class  ConvexPolygonBoundsBase
 base class for convex polygon bounds More...
class  CuboidPortalShell
 Base class for cuboid shaped portal shells, e.g. More...
class  CuboidStackPortalShell
 This class describes a cuboid shell containing multiple volumes. More...
class  CuboidVolumeBounds
 Bounds for a cubical Volume, the orientedSurfaces(...) method creates a vector of 6 surfaces: More...
class  CuboidVolumeBuilder
 This class builds a box detector with a configurable amount of surfaces in it. More...
class  CuboidVolumeStack
 This class implements a x-. More...
class  CurvilinearSurface
 Utility class for curvilinear surfaces. More...
class  CutoutCylinderVolumeBounds
 Class which implements a cutout cylinder. More...
class  CylinderBounds
class  CylinderLayer
 Class to describe a cylindrical detector layer for tracking, it inherits from both, Layer base class and CylinderSurface class. More...
class  CylinderNavigationPolicy
 Optimized navigation policy for cylindrical volumes that intelligently selects which portals to add as candidates based on geometric analysis. More...
class  CylinderPortalShell
 Base class for cylinder shaped portal shells, e.g. More...
class  CylinderStackPortalShell
 This class describes a cylinder shell containing multiple volumes. More...
class  CylinderSurface
 Class for a CylinderSurface in the TrackingGeometry. More...
class  CylinderVolumeBounds
 [0] and [1] at positive \( \phi \) More...
class  CylinderVolumeBuilder
 A volume builder to be used for building concentric cylinder volumes. More...
class  CylinderVolumeHelper
 The concrete implementation for cylindrical TrackingVolume objects of the ITrackingVolumeCreator interface. More...
class  CylinderVolumeStack
 This class implements a z-aligned or r-aligned stack of cylinder volumes with synchronized bounds. More...
class  CylindricalSpacePointGrid2
 A cylindrical space point grid used for seeding in a cylindrical detector geometry. More...
class  DBScan
 A general implementation of an N dimensional DBScan clustering algorithm. More...
class  Delegate
class  Delegate< R(Args...), H, O >
 Delegate type that allows type erasure of a callable without allocation and with a single level of indirection. More...
struct  DelegateFuncTag
 Tag type to select a compile-time callable for Delegate. More...
class  DiamondBounds
class  DiamondPortalShell
 Base class for diamond shaped portal shells, e.g single volumes with polygon shape or stacked (multiple) volumes (TODO). More...
class  DiamondVolumeBounds
 Bounds for a polygonal prism shaped Volume, the orientedSurface(...) method creates a vector of 8 surfaces: 2 Diamond Shape Surfaces (see. More...
struct  DirectedProtoAxis
 A Directed proto axis. More...
class  Direction
 The direction is always with respect to a given momentum, surface normal or other general axes. More...
class  DirectNavigator
 A fully guided navigator. More...
class  DiscBounds
class  DiscLayer
 Class to describe a disc-like detector layer for tracking, it inherits from both, Layer base class and DiscSurface class. More...
class  DiscSurface
 Class for a disc surface (or a segment thereof). More...
class  DiscTrapezoidBounds
 Class to describe the bounds for a planar DiscSurface. More...
class  DistanceSorterT
 This will check on absolute distance. More...
class  DoubletSeedFinder
 Interface and a collection of standard implementations for a doublet seed finder. More...
class  DoubletsForMiddleSp
 Container for doublets found by the doublet seed finder. More...
class  DummyVertexFitter
 Dummy vertex fitter class, only to be used for ensuring interfaces where a vertex fitter type is required but no fitter is actually needed. More...
class  EigenStepper
 Runge-Kutta-Nystroem stepper based on Eigen implementation for the following ODE: More...
struct  EigenStepperDefaultExtension
 Default evaluator of the k_i's and elements of the transport matrix D of the RKN4 stepping. More...
struct  EigenStepperDenseExtension
 Evaluator of the k_i's and elements of the transport matrix D of the RKN4 stepping. More...
class  ElementFraction
 Memory-efficient storage of the relative fraction of an element. More...
class  EllipseBounds
struct  EndOfWorldReached
 This is the condition that the end of world has been reached it then triggers an propagation abort. More...
struct  EstimateTrackParamCovarianceConfig
 Configuration for the estimation of the covariance matrix of the track parameters with estimateTrackParamCovariance. More...
struct  EventDataView3D
 Utilities to visualize event data in 3D. More...
struct  ExpSafeLimit
 Specialization of the exponent limit to be used for safe exponential, depending on the floating point type. More...
struct  ExpSafeLimit< double >
 Safe exponent limits for double precision. More...
struct  ExpSafeLimit< float >
 Safe exponent limits for single precision. More...
class  Extent
 A class representing the geometric extent of an object in its possible dimensions, these can be all dimensions that are described as AxisDirections. More...
struct  ExtentEnvelope
 This struct models a multi-dimensional enveloper along the axis directions. More...
class  FiniteStateMachine
 Implementation of a finite state machine engine. More...
class  FixedSubspaceHelper
 Helper class for fixed subspace operations. More...
struct  ForcedSurfaceReached
 Similar to SurfaceReached, but with an infinite overstep limit. More...
class  FreeTrackParameters
 Track parameters not bound to a surface for a single track. More...
class  Frustum
 Class representing a frustum shape. More...
class  FsmwMode1dFinder
 Calculates the mode of a unidimenensional distribution using the Fraction of Sample Mode with Weights algorithm For reference, see: On a Fast, Robust Estimator of the Mode: Comparisons to Other Robust Estimators with Applications, David R. More...
class  FullBilloirVertexFitter
 Vertex fitter class implementing the Billoir vertex fitter. More...
class  GainMatrixSmoother
 Kalman trajectory smoother based on gain matrix formalism. More...
class  GainMatrixUpdater
 Kalman update step using the gain matrix formalism. More...
class  GaussianGridTrackDensity
 Implements a 1-dim density grid to be filled with track Gaussian distributions. More...
struct  GaussianSumFitter
 Gaussian Sum Fitter implementation. More...
class  GaussianTrackDensity
 Class to model tracks as 2D density functions based on their d0 and z0 perigee parameters (mean value) and covariance matrices (determining the width of the function). More...
class  GenericApproachDescriptor
 Class to decide and return which approaching surface to be taken, it's a generic descriptor for n surfaces. More...
class  GenericCuboidVolumeBounds
 Volume bounds described by eight arbitrary cuboid vertices. More...
class  GeometryContext
 This is the central definition of the Acts payload object regarding detector geometry status (e.g. More...
struct  GeometryContextOstreamWrapper
 Helper struct that stores an object and a context, and will print it to an outstream. More...
class  GeometryHierarchyMap
 Store values mapped into the geometry hierarchy. More...
class  GeometryHierarchyMapJsonConverter
 Convert a geometry hierarchy map to/from Json. More...
class  GeometryIdentifier
 Identifier for geometry nodes within the geometry hierarchy. More...
struct  GeometryIdentifierHook
 Base class for hooks that can be used to modify the Geometry Identifier during construction. More...
class  GeometryObject
 Base class to provide GeometryIdentifier interface: More...
class  GeometryObjectSorterT
 Sorter functor for geometry objects by reference position. More...
struct  GeometryView3D
 Helper utilities for drawing geometry in 3D views. More...
struct  GloballyIndexedMaterialAccessor
 This is an accessor for cases where the material is filled in a global material vector that is accessed from the different material grids. More...
class  GlueVolumesDescriptor
 Descriptor class to hold GlueVolumes of a TrackingGeometry object. More...
class  GreedyAmbiguityResolution
 Evicts tracks that seem to be duplicates or fakes. More...
class  Grid
 class for describing a regular multi-dimensional grid More...
class  GridBinFinder
class  GridDensityVertexFinder
 Vertex finder that makes use of a track density grid. More...
class  GridGlobalIterator
 Grid iterator using the global position. More...
class  GridLocalIterator
 Grid iterator using the local position. More...
struct  GridMaterialAccessor
 This is an accessor for cases where the material is directly stored in the grid, it simply forwards the grid entry in const and non-const way. More...
 GridPortalLink implements a subdivided surface where the target volume depends on the position on the surface. More...
class  GridPortalLinkT
 Concrete class deriving from GridPortalLink that boxes a concrete grid for lookup. More...
class  GridSurfaceMaterialT
 GridSurfaceMaterialT. More...
struct  GsfComponent
 Encapsulates a component of a Gaussian mixture as used by the GSF. More...
struct  GsfExtensions
 The extensions needed for the GSF. More...
struct  GsfOptions
 Options for configuring the Gaussian-sum filter fit. More...
class  HelicalTrackLinearizer
 Linearizes the track parameters at the PCA to a user-provided point (linPoint). More...
class  HomogeneousSurfaceMaterial
 It extends the ISurfaceMaterial virtual base class to describe a simple homogeneous material on a surface. More...
class  HomogeneousVolumeMaterial
 It extends the IVolumeMaterial base class to describe a simple homogeneous material in a volume. More...
class  HoughVertexFinder
 Implements the vertex finder based on the space points using Hough transform For more information, see arXiv:2410.14494 0. More...
class  HoughVertexFinder2
 Implements the vertex finder based on the space points using Hough transform For more information, see arXiv:2410.14494 0. More...
class  IAssignmentFinder
 Interface for the material mapping that seeks the possible assignment candidates for the material interactiosn. More...
class  IAxis
 Common base class for all Axis instance. More...
class  IConfinedTrackingVolumeBuilder
 This is an interface class for constructing TrackingVolumes whose are confined in a mother-TrackingVolume. More...
class  IExperimentCuts
 IExperimentCuts can be used to increase or decrease seed weights based on the space points used in a seed. More...
class  IGrid
 Base class for all grid types. More...
struct  IGridMaterialAccessor
 Base class for material accessors, this is needed for the I/O of the different grid material types, in the actual implementation the material accessor is a template parameter. More...
class  IGridSurfaceMaterial
 Intermediate interface to the grid surface material given access to the grid and the material accessor. More...
class  IGridSurfaceMaterialBase
 Base class for the concrete templated grid surface material types. More...
class  ILayerArrayCreator
 Interface class ILayerArrayCreators, it inherits from IAlgTool. More...
class  ILayerBuilder
 Interface class for ILayerBuilders in a typical | EC- | Central | EC+ | detector setup. More...
class  IMaterialDecorator
 Virtual base class for decorators that allow to load material onto a TrackingGeometry. More...
struct  ImpactParametersAndSigma
 Impact parameters and their uncertainties with optional timing. More...
class  ImpactPointEstimator
 Estimator for impact point calculations A description of the underlying mathematics can be found here: https://github.com/acts-project/acts/pull/2506 TODO: Upload reference at a better place. More...
class  INavigationPolicy
 Base class for all navigation policies. More...
struct  IndexedMaterialAccessor
 This is an accessor for cases where the material is filled in a vector and then indexed by the grid. More...
class  IndexGrid
 This is an index grid based navigation state updator, it uses an extractor type and a filler type to handle the navigation state. More...
struct  IndexGridFiller
 A helper class that fills surfaces into predefined grids. More...
class  IndexGridNavigationConfig
 Configuration for the index-grid based navigation policy. More...
class  IndexGridNavigationPolicy
 A navigation policy that uses grid based navigation for indexed surfaces Navigate through a multilayer structure by creating an artificial path on the grid. More...
class  InfiniteBounds
 templated boundless extension to forward the interface Returns all inside checks to true and can templated for all bounds More...
struct  InputTrack
 Type-erased wrapper around an input track pointer. More...
struct  InteractionVolume
 The Material interaction volume struct. More...
struct  InteractionVolumeCollector
 An Interaction volume collector with unique counting. More...
class  InterpolatedBFieldMap
 Interpolates magnetic field value from field values on a given grid. More...
class  InterpolatedMagneticField
 Base class for interpolated magnetic field providers. More...
class  InterpolatedMaterialMap
 Interpolate material classification values from material values on a given grid. More...
class  Intersection
 Intersection struct containing the position, path length and status of an intersection. More...
class  IntersectionMaterialAssigner
 A purely intersection based material assigner on a trial and error basis. More...
struct  IReferenceGenerator
 An interface for reference point generators. More...
struct  IsReadOnlyMultiTrajectory
struct  IsReadOnlyMultiTrajectory< ActsPlugins::ConstPodioTrackStateContainer< holder_t > >
struct  IsReadOnlyMultiTrajectory< ActsPlugins::MutablePodioTrackStateContainer< holder_t > >
struct  IsReadOnlyMultiTrajectory< ConstVectorMultiTrajectory >
struct  IsReadOnlyMultiTrajectory< VectorMultiTrajectory >
struct  IsReadOnlyTrackContainer
struct  IsReadOnlyTrackContainer< ActsPlugins::ConstPodioTrackContainer< holder_t > >
struct  IsReadOnlyTrackContainer< ActsPlugins::MutablePodioTrackContainer< holder_t > >
struct  IsReadOnlyTrackContainer< ConstVectorTrackContainer >
struct  IsReadOnlyTrackContainer< VectorTrackContainer >
class  ISurfaceMaterial
 Base class of all surface-based material description. More...
class  ISurfaceMaterialAccumulator
 Interface for the material mapping, this is the accumulation step. More...
class  IterativeVertexFinder
 Implements an iterative vertex finder. More...
class  ITrackingGeometryBuilder
 Interface class for the TrackingGeometry building, this is used by the TrackingGeometrySvc to build the geometry. More...
class  ITrackingGeometryJsonDecorator
 helper class to add extra information to surface or volume json objects More...
class  ITrackingGeometryVisitor
 Base class for tracking geometry visitors. More...
class  ITrackingVolumeArrayCreator
 Interface class ITrackingVolumeArrayCreators It inherits from IAlgTool. More...
class  ITrackingVolumeBuilder
 Interface class ITrackingVolumeBuilders. More...
class  ITrackingVolumeHelper
 Interface class ITrackingVolumeHelper tools, it inherits from IAlgTool. More...
class  ITripletSeedCuts
 ITripletSeedCuts can be used to increase or decrease seed weights based on the space points used in a seed. More...
class  ITripletSeedFilter
 Interface for triplet seed filtering. More...
class  IVertexFinder
 Common interface for both vertex finders and vertex seed finders. More...
class  IVisualization3D
 Partially abstract base class which provides an interface to visualization helper classes. More...
class  IVolumeMaterial
 Material associated with a Volume (homogeneous, binned, interpolated). More...
class  IVolumeMaterialJsonDecorator
 helper class to add extra information to surface or volume json objects More...
class  JsonDetectorElement
 A implementation of a detector element, that is constructed from a JSON description of a surface. More...
struct  jsonKey
 store in a single place the different key used for the material mapping More...
class  JsonMaterialDecorator
 Material decorator from Json format. More...
class  KalmanFitter
 Kalman fitter implementation. More...
struct  KalmanFitterExtensions
 Extension struct which holds delegates to customise the KF behavior. More...
struct  KalmanFitterOptions
 Combined options for the Kalman fitter. More...
struct  KalmanFitterResult
 Result payload returned by the Kalman fitter. More...
class  KDTree
 A general k-d tree with fast range search. More...
class  Layer
 Base Class for a Detector Layer in the Tracking Geometry. More...
class  LayerArrayCreator
 The LayerArrayCreator is a simple Tool that helps to construct LayerArrays from std::vector of Acts::CylinderLayer, Acts::DiscLayer, Acts::PlaneLayer. More...
class  LayerCreator
 The LayerCreator is able to build cylinder disc layers or plane layers from detector elements. More...
struct  LinCircle
 A partial description of a circle in u-v space. More...
class  LinearizedTrack
 Class for linear expansion of track parameters in vicinity of vertex. More...
class  LineBounds
 Bounds for a LineSurface. More...
class  LineSurface
 Base class for a linear surfaces in the TrackingGeometry to describe dirft tube, straw like detectors or the Perigee It inherits from Surface. More...
class  Logger
 class for printing debug output More...
class  MagneticFieldContext
 Context object for lookup of magnetic field values. More...
class  MagneticFieldProvider
 Base class for all magnetic field providers. More...
class  Material
 Material description for interactions with matter. More...
class  MaterialComposition
 Material composed from multiple elements with varying factions. More...
struct  MaterialInteraction
 The Material interaction struct It records the surface and the passed material This is only necessary recorded when configured. More...
struct  MaterialInteractor
 Material interactor propagator action. More...
class  MaterialMapJsonConverter
 read the material from Json More...
struct  MaterialMapLookup
 Struct for mapping global 3D positions to material values. More...
class  MaterialMapper
 Class that implements the material mapping procedure. More...
class  MaterialSlab
 Material description for an object with defined thickness. More...
struct  MaterialSurface
 selector for finding surface More...
struct  MaterialSurfaceIdentifier
 selector for finding surface More...
class  MaterialValidator
 The material validator is a tool that allows to record the material seen by a ray through a set of material surfaces. More...
struct  MaterialVolume
 selector for finding volume More...
class  MbfSmoother
 Kalman trajectory smoother based on the Modified Bryson–Frazier (mBF) smoother. More...
class  MeasurementSelector
 Measurement selection struct selecting those measurements compatible with the given track parameter against provided criteria on one surface. More...
struct  MeasurementSelectorCuts
 Selection cuts for associating measurements with predicted track parameters on a surface. More...
struct  MiddleSpInfo
 Derived quantities for the middle space point in a doublet. More...
struct  missing_specialization
class  MultiComponentBoundTrackParameters
 This class is only a light wrapper around a surface and a vector of parameters. More...
class  MultiIndex
 A set of (hierarchical) indices bitpacked into a single value. More...
class  MultiIntersection
 Container for up to two intersections in a given dimension. More...
class  MultiNavigationPolicy
 Combined navigation policy that calls all contained other navigation policies. More...
class  MultiRangeBField
 Magnetic field provider modelling a magnetic field consisting of several (potentially overlapping) regions of constant values. More...
class  MultiStepperLoop
 Stepper based on a single-component stepper, but can handle Multi-Component Tracks (e.g., for the GSF). More...
struct  MultiStepperSurfaceReached
 Aborter that stops when all components reach the target surface. More...
class  MultiTrajectory
 Store a trajectory of track states with multiple components. More...
struct  MutableProtoLayer
 A mutable proto layer that can be modified after construction. More...
struct  NavigationArguments
 Struct that serves as the argument to the navigation delegate. More...
class  NavigationLayer
 Class to be used for gaps in Volumes as a navigational link. More...
struct  NavigationOptions
 The navigation options for the tracking geometry. More...
class  NavigationPolicyFactory
 Base class for navigation policy factories. More...
class  NavigationPolicyState
 Wrapper class for a navigation policy state stored in the state manager. More...
class  NavigationPolicyStateManager
 Manager class for navigation policy states. More...
class  NavigationStream
 The NavigationStream is a container for the navigation candidates that are currentlu processed in a given context. More...
class  NavigationTarget
 The navigation target. More...
class  Navigator
 Steers the propagation through the geometry by providing the next surface to be targeted. More...
struct  NavigatorPlainOptions
 Plain navigator options carrying geometry context and surfaces. More...
struct  NavigatorStatistics
 A struct to hold statistics of the navigator. More...
class  NeighborHoodIndices
 Iterable indices for neighborhood lookups with optional wrap-around. More...
struct  Neighbour
 A class that helps in processing the neighbours, given a collection of middle space points The idea here is that in the seeding we look for compatible b-m and m-t doublets. More...
class  NullBField
 Null bfield which returns 0 always. More...
class  NumericalTrackLinearizer
 Linearizes the track parameters at the PCA to a user-provided point (linPoint). More...
class  ObjectSorterT
 Sorter functor for geometry objects by axis direction. More...
class  ObjVisualization3D
 This helper produces output in the OBJ format. More...
struct  OrientedSurface
 Helper bundle of a surface and its orientation. More...
struct  overloaded
 Helper struct that can turn a set of lambdas into a single entity with overloaded call operator. More...
class  OwningDelegate
class  OwningDelegate< R(Args...), H >
 Alias for an owning delegate. More...
struct  ParticleData
 Lightweight particle properties description. More...
class  ParticleHypothesis
 Particle hypothesis used in reconstruction. More...
class  PassiveLayerBuilder
 The PassiveLayerBuilder is able to build cylinder & disc layers with given dimensions and material. More...
struct  PathLimitReached
 This is the condition that the pathLimit has been reached. More...
class  PathSeeder
 Seeding algorigthm that extracts the IP parameters and sorts the source links into possible track candidates. More...
class  PerigeeSurface
 Class describing the Line to which the Perigee refers to. More...
class  PlanarBounds
 common base class for all bounds that are in a local x/y cartesian frame More...
class  PlaneLayer
 Class to describe a planar detector layer for tracking, it inherits from both, Layer base class and PlaneSurface class. More...
class  PlaneSurface
 Class for a planaer in the TrackingGeometry. More...
class  PlyVisualization3D
 Helper to write out PlyVisualization3D visualization format. More...
class  Polyhedron
 Struct which contains a cartesian approximation for any surface type. More...
struct  PolyhedronReferenceGenerator
 A struct to access generated vertices from surface polyhedrons These vertices are then used to find the bin boundary box for the indexed grid. More...
class  Portal
 A portal connects two or more neighboring volumes. More...
class  PortalFusingException
 Exception thrown when portals cannot be fused. More...
class  PortalLinkBase
 PortalLinkBase is the abstract base class for all portal links. More...
class  PortalMergingException
 Exception thrown when portals cannot be merged. More...
class  PortalShellBase
 The portal shell of a volume is the set of portals that describes connections "outside" of the volume. More...
struct  ProjectedReferenceGenerator
 A Projected reference generator which projects the polyhedron vertices onto a given reference surface. More...
class  Propagator
 Propagator for particles (optionally in a magnetic field). More...
class  PropagatorMaterialAssigner
 A Propagator based material assigner that uses the navigation and transport of the propagator to assign the material to the surface or the volume. More...
struct  PropagatorOptions
 Options for propagate() call. More...
struct  PropagatorPlainOptions
 Holds the generic propagator options. More...
struct  PropagatorResult
 Simple class holding result of propagation call. More...
struct  PropagatorState
 private Propagator state for navigation and debugging More...
struct  PropagatorStatistics
 A struct to hold statistics of the propagator. More...
class  ProtoAxis
 This class is a pure run-time placeholder for the axis definition. More...
struct  ProtoLayer
 Forward-declaration friendly class for backward compatibility This class does not allow modification of the underlying surfaces. More...
class  ProtoLayerHelper
 This class is designed to parse a vector of Surfaces and sort them into corresponding proto layers. More...
class  ProtoSurfaceMaterialT
 proxy to SurfaceMaterial hand over BinUtility or other suitable binning description More...
class  ProtoVolumeMaterial
 proxy to VolumeMaterial hand over BinUtility More...
struct  ProxyAccessorBase
 Utility class that eases accessing dynamic columns in track and track state containers. More...
class  RadialBounds
 Class to describe the bounds for a planar DiscSurface. More...
class  RangeXD
 An orthogonal range in an arbitrary number of dimensions. More...
class  Ray
 Class which models a ray. More...
struct  RecordedMaterial
 Simple result struct to be returned It mainly acts as an internal state which is created for every propagation/extrapolation step. More...
class  RectangleBounds
struct  RefHolder
 Non-owning holder for referencing a backend. More...
class  RegularSurface
 A physical surface which does not depend on the direction you look at it from. More...
struct  RemovePointer
 Introduce the Acts version of the pointer remove type trait because we want to fetch the underlying type for the pointer concept and std::library does not allow for an extension of the std::remove_pointer;. More...
struct  RemovePointer< T >
 This specialization allows std::remove_pointer to work with types satisfying Acts::SmartPointerConcept, similar to how it works with raw pointers. More...
class  Result
 Class which encapsulates either a valid result, or an error. More...
class  Result< void, E >
 Template specialization for the void case. More...
class  RiddersPropagator
 This class performs the Ridders algorithm to estimate the propagation of the covariance to a certain point in space. More...
struct  RiddersPropagatorOptions
 Options for Ridders-based covariance propagation. More...
class  ScopedTimer
 A RAII timer class for measuring execution time of code blocks. More...
class  ScoreBasedAmbiguityResolution
 Generic implementation of the score based ambiguity resolution. More...
class  Seed
 Seed built from N external space points. More...
struct  SeedConfirmationRangeConfig
 Contains parameters for quality seed confirmation. More...
class  SeedContainer2
 A container of seeds. More...
class  SeedFilter
 Filter seeds at various stages with the currently available information. More...
struct  SeedFilterConfig
 Structure that holds configuration parameters for the seed filter algorithm. More...
struct  SeedFilterState
 Mutable state shared across seed filter steps. More...
class  SeedFinder
 Seed finder operating on grid-based space points. More...
struct  SeedFinderConfig
 Structure that holds configuration parameters for the seed finder algorithm. More...
struct  SeedFinderOptions
 Frequently changing options for seed finding. More...
class  SeedFinderOrthogonal
 Orthogonal range-search based seed finder. More...
struct  SeedFinderOrthogonalConfig
 Structure that holds configuration parameters for the orthogonal seed finder algorithm. More...
class  SeedProxy2
 A proxy class for accessing individual seeds. More...
class  SingleCuboidPortalShell
 This class describes a cuboid shell containing a single volume. More...
class  SingleCylinderPortalShell
 This class describes a cylinder shell containing a single volume. More...
class  SingleDiamondPortalShell
 Implementation of a portal shell class for a single convex polygon volume. More...
class  SingleTrapezoidPortalShell
 This class describes a trapezoid shell containing a single volume. More...
class  SolenoidBField
 Analytical solenoid magnetic field implementation. More...
 Type-erased source link wrapper. More...
struct  SourceLinkAdapterIterator
 Iterator adapter returning SourceLink wrappers. More...
class  SpacePointBuilder
 After the particle interaction with surfaces are recorded and digitized measurements on the pixel or strip detectors need further treatment. More...
struct  SpacePointBuilderConfig
 Configuration for space point builder setup. More...
struct  SpacePointBuilderOptions
 Options controlling space point construction. More...
class  SpacePointColumnProxy
 Additional column of data that can be added to the space point container. More...
class  SpacePointContainer
 Container wrapper providing space point proxy access. More...
class  SpacePointContainer2
 A container for space points, which can hold additional columns of data and allows for efficient access to space points and their associated source links. More...
struct  SpacePointContainerConfig
 Configuration flags for the space point container. More...
struct  SpacePointContainerOptions
 Construction options for the space point container. More...
class  SpacePointData
 This class contains auxiliary data associated to the external space points provided by the customers These variables are used internally by the seeding algorithm, that reads them The variables collected here are also dynamic variables only present for strip space points. More...
class  SpacePointMutableData
 This class contains mutable data associated to the external space points provided by the customers These variables are used mainly internally by the seeding algorithm, that reads and updates them for seed selection purposes. More...
struct  SpacePointParameters
 Storage container for variables related to the calculation of space points. More...
class  SpacePointProxy
 Proxy giving read access to space point data in a container. More...
class  SpacePointProxy2
 A proxy class for accessing individual space points. More...
class  SpacePointUtility
 Utility helper for space point calculations. More...
struct  StepperPlainOptions
 Common options shared by plain steppers. More...
struct  StepperStatistics
 A struct to hold statistics of the stepper. More...
class  StraightLineStepper
 straight line stepper based on Surface intersection More...
class  StrawSurface
 Class for a StrawSurface in the TrackingGeometry to describe dirft tube and straw like detectors. More...
struct  StripPairOptions
 Options for validating strip pair candidates. More...
struct  SupportsBoundParameters
struct  SupportsBoundParameters< EigenStepper<> >
struct  SupportsBoundParameters< StraightLineStepper >
struct  SupportsBoundParameters< SympyStepper >
class  Surface
 Abstract Base Class for tracking surfaces. More...
class  SurfaceArray
 Provides Surface binning in 2 dimensions. More...
class  SurfaceArrayCreator
 It is designed create sub surface arrays to be ordered on Surfaces. More...
class  SurfaceArrayNavigationPolicy
 A navigation policy that internally uses the Gen1 SurfaceArray class. More...
struct  SurfaceBinningMatcher
 Helper to compare surfaces for binning equivalence. More...
class  SurfaceBounds
 Interface for surface bounds. More...
struct  SurfaceCollector
 A Surface Collector struct templated with a Selector type. More...
struct  SurfaceHit
 The information to be writtern out per hit surface. More...
class  SurfaceMaterialMapper
 SurfaceMaterialMapper. More...
class  SurfaceMergingException
 Exception type failures to merge two surfaces. More...
class  SurfacePlacementBase
 The SurfacePlacementBase is an API proxy to model the dynamic movement of the Acts::Surface representing e.g. More...
struct  SurfaceReached
 This is the condition that the Surface has been reached it then triggers a propagation abort. More...
struct  SurfaceSelector
 Simple struct to select surfaces. More...
class  SympyStepper
 Stepper implementation using sympy-generated expressions. More...
class  Table
 A utility class for creating formatted markdown tables with automatic column sizing and alignment. More...
class  ToroidField
 Toroid magnetic field implementation. More...
class  TrackAtVertex
 Defines a track at vertex object. More...
class  TrackContainer
 Track container interface class. More...
class  TrackDensityVertexFinder
 Finds a vertex seed based on the maximum of a track density function. More...
class  TrackingGeometry
 The TrackingGeometry class is the owner of the constructed TrackingVolumes. More...
class  TrackingGeometryBuilder
 The Acts::TrackingGeometry Builder for volumes that wrap around another. More...
class  TrackingGeometryMutableVisitor
 Mutable visitor interface for modifying the tracking geometry hierarchy. More...
class  TrackingGeometryVisitor
 Visitor interface for traversing the tracking geometry hierarchy. More...
class  TrackingVolume
 Full Volume description used in Tracking, it inherits from Volume to get the geometrical structure. More...
class  TrackingVolumeArrayCreator
 The TrackingVolumeArrayCreator is a simple Tool that helps to construct binned arrays of TrackingVolumes for both, confinement in another volume and navigation issues. More...
class  TrackParamsLookupAccumulator
 Class to accumulate and average track lookup tables. More...
class  TrackProxy
 Proxy class representing a single track. More...
class  TrackProxyCommon
 Common CRTP implementation shared by the various track proxy front-ends. More...
class  TrackSelector
 Class which performs filtering of tracks. More...
struct  TrackStateCreator
 Create track states for selected measurements associated to a surface. More...
class  TrackStateProxy
 Proxy object to access a single point on the trajectory. More...
class  TrackStateProxyCommon
 Common CRTP implementation shared by track state proxy front-ends. More...
struct  TrackStateTraits
 Type aliases describing track state component mappings. More...
class  TrackStateType
 TrackStateTypeBase captured by value. More...
class  TrackStateTypeBase
 CRTP base class for TrackStateType and TrackStateTypeMap. More...
class  TrackStateTypeMap
 TrackStateTypeBase mapped to external storage. More...
class  TrapezoidBounds
 Bounds for a trapezoidal, planar Surface. More...
class  TrapezoidPortalShell
 Base class for trapezoid shaped portal shells, e.g. More...
class  TrapezoidVolumeBounds
 Bounds for a trapezoidal shaped Volume, the orientedSurface(...) method creates a vector of 6 surfaces: More...
struct  TripletCandidate
 A description of a triplet candidate. More...
class  TripletSeeder
 Full triplet seeder which depends on a doublet and triplet seed finder, and a triplet seed filter. More...
class  TripletSeedFinder
 Interface and a collection of standard implementations for a triplet seed finder. More...
class  TripletTopCandidates
 Container for triplet candidates found by the triplet seed finder. More...
 Trivial portal link links to a single target volume on every point on a surface. More...
class  TryAllNavigationPolicy
 Policy which adds all candidates of the configured type to the stream. More...
class  TypeDispatcher
 Template class for type-based function dispatch. More...
class  TypeDispatcher< base_t, return_t(args_t...)>
 Type dispatcher specialization for function signature. More...
struct  TypeList
 type list implementation More...
struct  TypeTag
struct  ValueHolder
 Owning holder that stores a backend by value. More...
class  VariableSubspaceHelper
 Helper class for variable subspace operations. More...
class  VectorMultiTrajectory
 In-memory transient multi-trajectory implementation using std::vector as backend. More...
class  VectorTrackContainer
 Track container backend using std::vector for storage. More...
class  Vertex
 Class for storing vertex objects. More...
struct  VertexInfo
 Helper struct for storing vertex related information. More...
struct  VertexingOptions
 Vertex Finder Options. More...
struct  ViewConfig
 Struct to concentrate all visualization configurations in order to harmonize visualization interfaces. More...
class  VoidNavigator
 A navigator that does nothing. More...
class  Volume
 It inherits from GeometryObject for geometry identification. More...
class  VolumeBounds
 Pure Absract Base Class for Volume bounds. More...
struct  VolumeCollector
 A Volume Collector struct templated with a Selector type. More...
struct  VolumeConfig
 VolumeConfig struct to understand the layer config. More...
struct  VolumeConstraintAborter
 This is the condition that the end of world has been reached it then triggers a propagation abort. More...
struct  VolumeHit
 The information to be writtern out per hit volume. More...
class  VolumeMaterialMapper
 VolumeMaterialMapper. More...
class  VolumePlacementBase
 Interface class to define the transform cache backend for alignable volumes. More...
struct  VolumeSelector
 Simple struct to select volumes. More...
class  VolumeStack
 A stack of volumes. More...
struct  WrappingConfig
 The WrappingSetup that is happening here. More...
class  ZScanVertexFinder
 Implements a vertex finder based on the mode of z0 values: More...

Concepts

concept  Actor
concept  ActorHasAbort
concept  ActorHasAbortWithoutResult
concept  ActorHasAbortWithResult
concept  ActorHasAct
concept  ActorHasActWithoutResult
concept  ActorHasActWithResult
concept  ActorHasOldVoidInterface
concept  ActorHasResult
concept  AmbiguityNetworkConcept
 Concept for the ambiguity network used in the ambiguity resolution.
concept  AxisConcept
concept  BoundTrackParametersConcept
 Concept that asserts that a given type meets the requirements to be considered bound track parameters in Acts.
concept  CollectionStoresSeedsTo
concept  CommonMultiTrajectoryBackend
concept  ConstMultiTrajectoryBackend
concept  ConstTrackContainerBackend
concept  ConstTrackProxyConcept
concept  ConstTrackStateProxyConcept
concept  FreeTrackParametersConcept
 Concept that asserts that a given type meets the requirements to be considered free track parameters in Acts.
concept  GridBinCollection
concept  hasPrintOperator
 Define a generic concept whether an object can be piped to an ostream / cout.
concept  HolderFor
 Concept for holder templates that provide pointer-like access.
concept  isValidConvexPolygonSize
concept  MutableMultiTrajectoryBackend
concept  MutableSurfaceVisitor
concept  MutableTrackContainerBackend
concept  MutableTrackProxyConcept
concept  MutableTrackStateProxyConcept
concept  NavigationPolicyConcept
 Concept for a navigation policy This exists so initializeCandidates can be a non-virtual method and we still have a way to enforce it exists.
concept  PointerConcept
concept  RegularSurfaceConcept
concept  SatisfyCandidateConcept
concept  SmartPointerConcept
 The Pointer concept is an extension of the usual std::is_pointer_v type trait to also include the smart pointers like std::shared_ptr<T>, std::unique_ptr<T> The smart pointer is required to have an element_type typedef indicating over which data type the pointer is constructed, the arrow operator.
concept  StepperConcept
 Concept that is satisfied by steppers.
concept  StepperStateConcept
 Concept that is satisfied by stepper states.
concept  SurfaceConcept
concept  SurfaceVisitor
concept  TrackContainerBackend
concept  TrackContainerFrontend
concept  TrackingVolumeVisitor
concept  TrackProxyConcept
concept  TrackStateProxyConcept

Typedefs

using AlignmentMatrix = Matrix<eAlignmentSize, eAlignmentSize>
 Square matrix type for alignment parameters.
using AlignmentRowVector = Matrix<1, eAlignmentSize>
 Row vector type for alignment parameters.
using AlignmentToBoundMatrix = Matrix<eBoundSize, eAlignmentSize>
 Matrix type for transforming alignment parameters to bound parameters.
using AlignmentToPathMatrix = Matrix<1, eAlignmentSize>
 Matrix type for transforming alignment parameters to path length.
using AlignmentToPositionMatrix = Matrix<3, eAlignmentSize>
 Matrix type for transforming alignment parameters to position.
using AlignmentVector = Vector<eAlignmentSize>
 Vector type for alignment parameters.
using AngleAxis3 = Eigen::AngleAxis<double>
 Rotation defined by an angle around a rotation axis in 3D.
using Any = AnyBase<sizeof(void*), true>
 A type-safe container for single values of any type.
using AnyConstTrackProxy = AnyTrackProxy<true>
 Alias for read-only type-erased track.
using AnyConstTrackStateProxy = AnyTrackStateProxy<true>
 Type alias for a const track state proxy.
using AnyMoveOnly = AnyBase<sizeof(void*), false>
 Move-only variant that can store move-only types (e.g.
using AnyMutableTrackProxy = AnyTrackProxy<false>
 Alias for mutable type-erased track (though currently all operations are const).
using AnyMutableTrackStateProxy = AnyTrackStateProxy<false>
 Type alias for a mutable track state proxy.
using AxisScalar = Vector3::Scalar
 Scalar type used for axis values in surface array binning.
using BoundarySurface = BoundarySurfaceT<TrackingVolume>
 Type alias for boundary surface with TrackingVolume.
using BoundMatrix = Matrix<eBoundSize, eBoundSize>
 Matrix type for bound track parameter transformations.
using BoundSubspaceIndices = SubspaceIndices<eBoundSize>
 Type alias for bound parameter subspace indices.
using BoundToFreeMatrix = Matrix<eFreeSize, eBoundSize>
 Matrix type for mapping from bound to free track parameters.
using BoundVector = Vector<eBoundSize>
 Vector type for bound track parameters.
using ConfigPair
 Type alias for a pair of detector configuration and ambiguity resolution configuration.
template<bool C, typename T>
using const_if_t = std::conditional_t<C, const T, T>
 Type trait that adds const qualifier to a type based on a boolean condition.
template<PointerConcept T>
using ConstDeRef_t = std::add_const_t<RemovePointer_t<T>>&
 Construct a const pointer dereference.
template<typename T>
using ConstProxyAccessor = ProxyAccessorBase<T, true>
 Type alias for a const proxy accessor.
using ConstSeedProxy2 = SeedProxy2<true>
 Const proxy to a seed for read-only access.
template<typename T>
using ConstSpacePointColumnProxy = SpacePointColumnProxy<T, true>
 Const proxy to a space point column for read-only access.
using ConstSpacePointProxy2 = SpacePointProxy2<true>
 Const proxy to a space point for read-only access.
using ConstTrackStateTypeMap = TrackStateTypeMap<true>
 Const track state type map for read-only access.
using DetectorConfig = ScoreBasedAmbiguityResolution::DetectorConfig
 Type alias for detector-specific ambiguity resolution configuration.
using DynamicMatrix
 Dynamic-sized matrix type.
using DynamicMatrix = Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>
 Dynamic-sized matrix type.
using DynamicVector
 Dynamic-sized vector type.
using DynamicVector = Eigen::Matrix<double, Eigen::Dynamic, 1>
 Dynamic-sized vector type.
using EAxis = Acts::Axis<AxisType::Equidistant>
 Type alias for equidistant axis with open boundary type.
using Envelope = std::array<double, 2>
 Type alias for envelope values in different directions.
template<std::size_t SubspaceSize>
using FixedBoundSubspaceHelper
 Helper type for fixed-size bound parameter subspaces.
using FreeMatrix = Matrix<eFreeSize, eFreeSize>
 Matrix type for free track parameter transformations.
using FreeToBoundMatrix = Matrix<eBoundSize, eFreeSize>
 Matrix type for mapping from free to bound track parameters.
using FreeToPathMatrix = Matrix<1, eFreeSize>
 Matrix type for mapping from free parameters to path length.
using FreeVector = Vector<eFreeSize>
 Vector type for free track parameters.
template<typename grid_type>
using GloballyIndexedSurfaceMaterial
 Type alias for surface material indexed by global coordinates.
using Grid2D = Acts::Grid<Acts::AccumulatedVolumeMaterial, EAxis, EAxis>
 Type alias for a 2-dimensional grid.
using Grid3D = Acts::Grid<Acts::AccumulatedVolumeMaterial, EAxis, EAxis, EAxis>
 Type alias for a 3-dimensional grid.
template<typename grid_type>
using GridSurfaceMaterial
 Type alias for grid-based surface material.
using HashedString = std::uint32_t
 Type alias for hashed string representation.
template<typename grid_type>
using IndexedSurfaceMaterial
 Type alias for surface material indexed by local coordinates.
using Intersection2D = Intersection<2>
 Type alias for 2D intersection.
using Intersection3D = Intersection<3>
 Type alias for 3D intersection.
using IntersectionIndex = std::uint8_t
 Index type for intersections.
using LayerPtr = std::shared_ptr<const Layer>
 A std::shared_ptr to a Layer.
using MaterialGrid2D
 Type alias for a 2-dimensional material grid.
using MaterialGrid3D
 Type alias for a 3-dimensional material grid.
using MaterialGridAxisData = std::tuple<double, double, std::size_t>
 Type alias for the axis data in material grids.
using MaterialSlabMatrix = std::vector<MaterialSlabVector>
 Type alias for a matrix of material slabs.
using MaterialSlabVector = std::vector<MaterialSlab>
 Type alias for a vector of material slabs.
template<unsigned int kRows, unsigned int kCols>
using Matrix
 Fixed-size matrix type for NxM matrices.
template<unsigned int kRows, unsigned int kCols>
using Matrix = Eigen::Matrix<double, kRows, kCols>
 Fixed-size matrix type for NxM matrices.
using MaxMomentumReducerLoop
 Type alias for loop reducer based on maximum momentum.
using MaxWeightReducerLoop
 Type alias for loop reducer based on maximum weight.
template<typename extension_t = EigenStepperDefaultExtension, typename reducer_t = MaxWeightReducerLoop>
using MultiEigenStepperLoop
 Stepper based on the EigenStepper, but handles Multi-Component Tracks (e.g., for the GSF).
using MultiIntersection2D = MultiIntersection<2>
 Container for up to two 2D intersections.
using MultiIntersection3D = MultiIntersection<3>
 Container for up to two 3D intersections.
using MutableLayerPtr = std::shared_ptr<Layer>
 Type alias for a mutable pointer to a layer.
using MutableSeedProxy2 = SeedProxy2<false>
 Mutable proxy to a seed allowing modification.
template<typename T>
using MutableSpacePointColumnProxy = SpacePointColumnProxy<T, false>
 Mutable proxy to a space point column allowing modification.
using MutableSpacePointProxy2 = SpacePointProxy2<false>
 Mutable proxy to a space point allowing modification.
using MutableTrackStateTypeMap = TrackStateTypeMap<false>
 Mutable track state type map allowing modification.
using NavigationDelegate
 Central alias for the navigation delegate.
using NextLayers = std::pair<const Layer*, const Layer*>
 Type alias for adjacent layer pointers.
using ParamCovAccessor
 Type alias for accessing parameter covariance matrices.
using ProjectorBitset = std::uint64_t
 Type alias for bitset representing parameter projections.
using ProtoGridSurfaceMaterial
 Type alias for a prototype surface material using a grid of ProtoAxis A surface material implementation that uses a vector of ProtoAxis for grid-based binning.
using ProtoSurfaceMaterial = ProtoSurfaceMaterialT<Acts::BinUtility>
 Type alias for a prototype surface material using BinUtility A surface material implementation that uses BinUtility for binning.
template<typename T>
using ProxyAccessor = ProxyAccessorBase<T, false>
 Type alias for a mutable proxy accessor.
template<typename Type, template< typename, std::size_t > typename Vector = std::array>
using Range1D = RangeXD<1, Type, Vector>
 Type alias for a one-dimensional range.
using Ray3D = Ray<double, 3>
 Type alias for a 3D ray using double precision.
using RecordedMaterialTrack
 And recorded material track.
using RecordedMaterialVolumePoint
 list of point used in the mapping of a volume
using RegularCylinderIndexGrid
 Regular cylinder grid in phi and z.
using RegularCylinderIndexGridNavigationPolicy
 Navigation policy for regular cylinder grids.
using RegularDiscIndexGrid
 Regular disc grid in r and phi.
using RegularDiscIndexGridNavigationPolicy
 Navigation policy for regular disc grids.
using RegularPlaneIndexGrid
 Regular planar grid in x and y.
using RegularPlaneIndexGridNavigationPolicy
 Navigation policy for regular planar grids.
using RegularRingIndexGrid
 Regular ring grid in phi.
using RegularRingIndexGridNavigationPolicy
 Navigation policy for regular ring grids.
template<typename T>
using RemovePointer_t = RemovePointer<T>::type
 Helper type alias for removing pointer from type.
using RotationMatrix2 = SquareMatrix2
 2D rotation matrix
using RotationMatrix3 = SquareMatrix3
 3D rotation matrix
using SeedIndex2 = std::uint32_t
 Index type for seeds.
using SerializedSubspaceIndices = std::uint64_t
 Type alias for serialized subspace indices.
using SourceLinkSurfaceAccessor = Delegate<const Surface*(const SourceLink&)>
 Delegate to unpack the surface associated with a source link.
using SpacePointIndex2 = std::uint32_t
 Index type for space points.
using SpacePointIndexRange2 = std::pair<SpacePointIndex2, SpacePointIndex2>
 Range of space point indices defined by a pair of start and end indices.
using SpacePointIndexSubset2 = std::span<const SpacePointIndex2>
 Subset of space point indices represented as a span.
template<unsigned int kSize>
using SquareMatrix
 Fixed-size square matrix type for NxN matrices.
template<unsigned int kSize>
using SquareMatrix = Eigen::Matrix<double, kSize, kSize>
 Fixed-size square matrix type for NxN matrices.
template<unsigned int kSize>
using SquareMatrix
 Fixed-size square matrix type for NxN matrices.
template<unsigned int kSize>
using SquareMatrix
 Fixed-size square matrix type for NxN matrices.
using SquareMatrix2 = SquareMatrix<2>
 2x2 square matrix type, typically used for 2D coordinate covariance
using SquareMatrix3 = SquareMatrix<3>
 3x3 square matrix type, typically used for 3D coordinate covariance
using SquareMatrix4 = SquareMatrix<4>
 4x4 square matrix type, typically used for 4D coordinate covariance
using SubspaceIndex = std::uint8_t
 Type alias for subspace index.
template<std::size_t measdim>
using SubspaceIndices = std::array<SubspaceIndex, measdim>
 Template alias for subspace indices array.
using SurfaceAndMaterialWithContext
 A tuple containing a surface, its associated material, and geometry context.
using SurfaceBoundFactory = BoundFactory<const SurfaceBounds>
 Abrivation for a factory to construct surface bounds.
using SurfaceMatcher
 Function type for comparing two surfaces in a given geometry context and axis direction.
using SurfaceMaterialMaps
 Type alias for surface material maps indexed by geometry identifier.
using surfaceMaterialPointer = const Acts::ISurfaceMaterial*
 Pointer to a constant surface material object.
using SurfaceMatrix = std::vector<SurfaceVector>
 Matrix (2D vector) of pointers to constant Surface objects.
using SurfaceVector = std::vector<const Surface*>
 Vector of pointers to constant Surface objects.
using TrackIndexType = std::uint32_t
 Type alias for track index values.
using TrackingGeometryMaterial
 Type alias for tracking geometry material containing surface and volume maps.
using TrackingVolumeAndMaterial
 A pair containing a tracking volume and its associated material.
using TrackingVolumeOrderPosition = std::pair<TrackingVolumePtr, Vector3>
 A pair associating a tracking volume with its position vector.
using TrackLinearizer
 A delegate for linearizing a track at a given point in time and surface.
using Transform2 = Eigen::Transform<double, 2, Eigen::AffineCompact>
 2D affine transformation stored as a compact 2x3 matrix
using Transform3 = Eigen::Transform<double, 3, Eigen::Affine>
 3D affine transformation stored as a 4x4 matrix
using Translation2 = Eigen::Translation<double, 2>
 2D translation transformation
using Translation3 = Eigen::Translation<double, 3>
 3D translation transformation
using V3Matrix = std::vector<V3Vector>
 Matrix (2D vector) of 3D vectors, used for storing grid-like collections of 3D points.
using V3Vector = std::vector<Vector3>
 Vector of 3D vectors, used for storing collections of 3D points.
using VariableBoundSubspaceHelper
 Helper type for variable-size bound parameter subspaces.
template<unsigned int kSize>
using Vector
 Fixed-size vector type for N-dimensional vectors.
template<unsigned int kSize>
using Vector = Eigen::Matrix<double, kSize, 1>
 Fixed-size vector type for N-dimensional vectors.
using Vector2 = Vector<2>
 2-dimensional vector type for 2D coordinates
using Vector3 = Vector<3>
 3-dimensional vector type for e.g. spatial coordinates and momenta
using Vector4 = Vector<4>
 4-dimensional vector type for space-time coordinates
using VolumeBoundFactory = BoundFactory<VolumeBounds>
 Abrivation for a factory to construct volume bounds.
using VolumeMaterialMaps
 Type alias for volume material maps indexed by geometry identifier.
using volumeMaterialPointer = const Acts::IVolumeMaterial*
 Pointer to a constant volume material object.
using TrackingVolumePtr = std::shared_ptr<const TrackingVolume>
 A std::shared_ptr to a tracking volume.
using TrackingVolumeArray = BinnedArray<TrackingVolumePtr>
 A BinnedArray of a std::shared_tr to a TrackingVolume.
using MutableTrackingVolumePtr = std::shared_ptr<TrackingVolume>
 Shared pointer to a mutable TrackingVolume.
using MutableTrackingVolumeVector = std::vector<MutableTrackingVolumePtr>
 Vector of shared pointers to mutable TrackingVolumes.
using LayerArray = BinnedArray<LayerPtr>
 A BinnedArray to a std::shared_ptr of a layer.
using LayerVector = std::vector<LayerPtr>
 A vector of std::shared_ptr to layers.
using TrackingVolumeVector = std::vector<TrackingVolumePtr>
 A std::vector of a std::shared_ptr to a TrackingVolume.
using TrackingVolumeBoundaryPtr
 Shared pointer to a constant BoundarySurfaceT of a TrackingVolume.
using TrackingVolumeBoundaries = std::vector<TrackingVolumeBoundaryPtr>
 Type alias for collection of tracking volume boundaries.

Enumerations

enum  AlignmentIndices : unsigned int {
  eAlignmentCenter0 = 0u , eAlignmentCenter1 = eAlignmentCenter0 + 1u , eAlignmentCenter2 = eAlignmentCenter0 + 2u , eAlignmentRotation0 = 3u ,
  eAlignmentRotation1 = eAlignmentRotation0 + 1u , eAlignmentRotation2 = eAlignmentRotation0 + 2u , eAlignmentSize
}
 Components of alignment parameters vector. More...
enum class  AxisBoundaryType { Open , Bound , Closed }
 Enum which determines how the axis handle its outer boundaries possible values values. More...
enum class  AxisDirection : int {
  AxisX = 0 , AxisY = 1 , AxisZ = 2 , AxisR = 3 ,
  AxisPhi = 4 , AxisRPhi = 5 , AxisTheta = 6 , AxisEta = 7 ,
  AxisMag = 8
}
 to specify a local axis direction More...
enum class  AxisType { Equidistant , Variable }
 Enum which determines the binning type of the axis. More...
enum  BinningOption { open , closed }
 flag for open/closed bins
enum  BinningType { equidistant , arbitrary }
 , BinningOption & BinningAccess More...
enum  BoundarySurfaceFace {
  negativeFaceXY = 0 , positiveFaceXY = 1 , negativeFaceYZ = 2 , positiveFaceYZ = 3 ,
  negativeFaceZX = 4 , positiveFaceZX = 5 , cylinderCover = 2 , tubeInnerCover = 3 ,
  tubeOuterCover = 2 , tubeSectorNegativePhi = 4 , tubeSectorPositivePhi = 5 , tubeSectorInnerCover = 3 ,
  tubeSectorOuterCover = 2 , trapezoidFaceAlpha = 2 , trapezoidFaceBeta = 3 , index0 = 0 ,
  index1 = 1 , index2 = 2 , index3 = 3 , index4 = 4 ,
  index5 = 5 , index6 = 6 , index7 = 7 , index8 = 8 ,
  index9 = 9 , index10 = 10 , index11 = 11 , undefinedFace = 99
}
 Enum to describe the position of the BoundarySurface respectively to the frame orientation of the volume, this is mainly meant for code readability. More...
enum  BoundIndices : unsigned int {
  eBoundLoc0 = 0 , eBoundLoc1 = 1 , eBoundPhi = 2 , eBoundTheta = 3 ,
  eBoundQOverP = 4 , eBoundTime = 5 , eBoundSize
}
 Components of a bound track parameters vector. More...
enum class  CombinatorialKalmanFilterBranchStopperResult { Continue , StopAndDrop , StopAndKeep }
 Return type of the BranchStopper delegate for the CombinatorialKalmanFilter.
enum class  CombinatorialKalmanFilterError {
  CombinatorialKalmanFilterError::UpdateFailed = 1 , CombinatorialKalmanFilterError::SmoothFailed , CombinatorialKalmanFilterError::OutputConversionFailed , CombinatorialKalmanFilterError::MeasurementSelectionFailed ,
  CombinatorialKalmanFilterError::PropagationReachesMaxSteps , CombinatorialKalmanFilterError::NoMeasurementExpected
}
 Error codes for combinatorial Kalman filter operations. More...
enum class  ComponentMergeMethod { eMean , eMaxWeight }
 Available reduction methods for the reduction of a Gaussian mixture.
enum  CoordinateIndices : unsigned int {
  ePos0 = 0 , ePos1 = 1 , ePos2 = 2 , eTime = 3 ,
  eMom0 = ePos0 , eMom1 = ePos1 , eMom2 = ePos2 , eEnergy = eTime ,
  eX = ePos0 , eY = ePos1 , eZ = ePos2
}
 Components of coordinate vectors. More...
enum class  DelegateType { Owning , NonOwning }
 Ownership enum for Delegate.
enum class  DetectorMeasurementInfo : short { eDefault , eDetailed }
 Level of detector measurement information for seeding.
enum class  EigenStepperError { EigenStepperError::StepSizeStalled = 1 , EigenStepperError::StepInvalid , EigenStepperError::StepSizeAdjustmentFailed }
 Error codes for Eigen stepper operations. More...
enum  FreeIndices : unsigned int {
  eFreePos0 = 0u , eFreePos1 = eFreePos0 + 1u , eFreePos2 = eFreePos0 + 2u , eFreeTime = 3u ,
  eFreeDir0 = 4u , eFreeDir1 = eFreeDir0 + 1u , eFreeDir2 = eFreeDir0 + 2u , eFreeQOverP = 7u ,
  eFreeSize
}
 Components of a free track parameters vector. More...
enum class  GsfError { GsfError::StartParametersHaveNoCovariance , GsfError::NoMeasurementStatesCreatedForward , GsfError::NoMeasurementStatesCreatedBackward , GsfError::NoMeasurementStatesCreatedFinal }
 Error codes for Gaussian Sum Filter operations. More...
enum class  HadronType {
  Hadron = 1 , BBbarMeson = 2 , CCbarMeson = 3 , BottomMeson = 4 ,
  BottomBaryon = 5 , CharmedMeson = 6 , CharmedBaryon = 7 , StrangeMeson = 8 ,
  StrangeBaryon = 9 , LightMeson = 10 , LightBaryon = 11 , Unknown = 12
}
 Hadron type classification for B, C, strange and light hadrons.
enum class  IntersectionStatus : int { unreachable = 0 , reachable = 1 , onSurface = 2 }
 Status enum.
enum class  KalmanFitterError {
  KalmanFitterError::UpdateFailed = 1 , KalmanFitterError::SmoothFailed , KalmanFitterError::OutputConversionFailed , KalmanFitterError::NoMeasurementFound ,
  KalmanFitterError::ReversePropagationFailed , InconsistentTrackStates
}
 Error codes for Kalman filter operations. More...
enum  LayerType { navigation = -1 , passive = 0 , active = 1 }
 For code readability, it distinguishes between different type of layers, which steers the behaviour in the navigation.
enum  LinIndices : unsigned int {
  eLinPos0 = 0u , eLinPos1 = eLinPos0 + 1u , eLinPos2 = eLinPos0 + 2u , eLinTime = 3u ,
  eLinPhi = 4u , eLinTheta = eLinPhi + 1u , eLinQOverP = 6u , eLinSize = 7u ,
  eLinPosSize = 4u , eLinMomSize = 3u
}
 Enum to access the components of a track parameter vector. More...
enum class  MagneticFieldError { MagneticFieldError::OutOfBounds = 1 , MagneticFieldError::NotImplemented = 2 }
 Error codes for magnetic field operations. More...
enum class  MappingType : std::int8_t { PreMapping = -1 , Default = 0 , PostMapping = 1 , Sensor = 2 }
 This enum describes the type of surface material mapping.
enum class  MaterialUpdateMode : std::uint8_t { NoUpdate = 0 , PreUpdate = 1 , PostUpdate = 2 , FullUpdate = PreUpdate | PostUpdate }
 This is a steering enum to tell which material update mode: More...
enum class  MultiStepperError {
  MultiStepperError::ComponentNotOnSurface = 1 , MultiStepperError::StateOfMultipleComponentsRequested = 2 , MultiStepperError::AverageTrackLeftCurrentVolume = 3 , MultiStepperError::AllComponentsSteppingError = 4 ,
  MultiStepperError::AllComponentsConversionToBoundFailed = 5 , MultiStepperError::SomeComponentsConversionToBoundFailed = 6
}
 Error codes for multi-stepper operations. More...
enum class  NavigatorError { NavigatorError::NotInsideExpectedVolume = 1 , NavigatorError::NotOnExpectedSurface = 2 , NavigatorError::NoStartVolume = 3 }
 Error codes for navigator operations. More...
enum class  NoiseUpdateMode : int { removeNoise = -1 , addNoise = 1 }
 to tell how to deal with noise term in covariance transport More...
enum  PdgParticle : std::int32_t {
  eInvalid = 0 , eElectron = 11 , eAntiElectron = -eElectron , ePositron = -eElectron ,
  eMuon = 13 , eAntiMuon = -eMuon , eTau = 15 , eAntiTau = -eTau ,
  eGamma = 22 , ePionZero = 111 , ePionPlus = 211 , ePionMinus = -ePionPlus ,
  eKaonPlus = 321 , eKaonMinus = -eKaonPlus , eNeutron = 2112 , eAntiNeutron = -eNeutron ,
  eProton = 2212 , eAntiProton = -eProton , eLead = 1000822080 , eKaon0Short = 310 ,
  eLambda0 = 3122 , eJPsi = 443 , eB0 = 511 , eBPlus = 521 ,
  eD0 = 421 , eDPlus = 411 , eAntiB0 = -eB0 , eAntiD0 = -eD0 ,
  eNeutrinoE = 12 , eNeutrinoMu = 14 , eNeutrinoTau = 16 , eAntiNeutrinoE = -eNeutrinoE ,
  eAntiNeutrinoMu = -eNeutrinoMu , eAntiNeutrinoTau = -eNeutrinoTau
}
 Symbolic values for commonly used PDG particle numbers.
enum class  PortalError { PortalError::PositionNotOnAnyChildPortalLink = 1 }
 Error codes for portal operations. More...
enum class  PropagatorError { PropagatorError::Failure = 1 , PropagatorError::StepCountLimitReached , PropagatorError::NextTargetLimitReached }
 Error codes for propagator operations. More...
enum class  PropagatorStage {
  invalid , prePropagation , postPropagation , preStep ,
  postStep
}
 Different stages during propagation. More...
enum class  SeedColumns : std::uint32_t {
  None = 0 , SpacePointIndices , Quality = 1 << 1 , VertexZ = 1 << 2 ,
  All = SpacePointIndices | Quality | VertexZ
}
 Enumeration of available columns for space point data storage. More...
enum class  SpacePointCandidateType : short { eBottom , eTop }
 Types of space point candidates for seeding.
enum class  SpacePointColumns : std::uint32_t {
  None = 0 , SourceLinks = 1 << 0 , X = 1 << 1 , Y = 1 << 2 ,
  Z = 1 << 3 , R = 1 << 4 , Phi = 1 << 5 , Time = 1 << 6 ,
  VarianceZ = 1 << 7 , VarianceR = 1 << 8 , TopStripVector = 1 << 9 , BottomStripVector = 1 << 10 ,
  StripCenterDistance = 1 << 11 , TopStripCenter = 1 << 12 , CopyFromIndex = 1 << 13 , PackedXY = 1 << 14 ,
  PackedZR = 1 << 15 , PackedXYZ = 1 << 16 , PackedXYZR = 1 << 17 , PackedVarianceZR = 1 << 18 ,
  Strip , All , XY = 1 << 14 , ZR = 1 << 15 ,
  XYZ = 1 << 16 , XYZR = 1 << 17 , VarianceZR = 1 << 18
}
 Enumeration of available columns for space point data storage. More...
enum class  SpacePointFormationError {
  SpacePointFormationError::ClusterPairDistanceExceeded = 1 , SpacePointFormationError::ClusterPairThetaDistanceExceeded = 2 , SpacePointFormationError::ClusterPairPhiDistanceExceeded = 3 , SpacePointFormationError::CosmicToleranceNotMet = 4 ,
  SpacePointFormationError::OutsideLimits = 5 , SpacePointFormationError::OutsideRelaxedLimits = 6 , SpacePointFormationError::NoSolutionFound = 7
}
 Error codes for space point formation operations. More...
enum class  SurfaceError { SurfaceError::GlobalPositionNotOnSurface = 1 }
 Error codes for surface operations. More...
enum class  TrackExtrapolationError { TrackExtrapolationError::CompatibleTrackStateNotFound = 1 , TrackExtrapolationError::ReferenceSurfaceUnreachable = 2 }
 Error codes for track extrapolation operations. More...
enum class  TrackExtrapolationStrategy { first , last , firstOrLast }
 Strategy for track extrapolation to target surface. More...
enum class  TrackStateFlag {
  MeasurementFlag , ParameterFlag , OutlierFlag = 2 , HoleFlag = 3 ,
  MaterialFlag = 4 , SharedHitFlag = 5 , SplitHitFlag = 6 , NoExpectedHitFlag = 7 ,
  NumTrackStateFlags = 8 , HasMeasurement = 0 , HasParameters = 1 , IsOutlier = 2 ,
  IsHole = 3 , HasMaterial = 4 , IsSharedHit = 5 , IsSplitHit = 6 ,
  HasNoExpectedHit = 7 , NumFlags = 8
}
 Enumeration of track state flags. More...
enum struct  TrackStatePropMask : std::uint8_t {
  None = 0 , Predicted = 1 << 0 , Filtered = 1 << 1 , Smoothed = 1 << 2 ,
  Jacobian = 1 << 3 , Calibrated = 1 << 4 , All = std::numeric_limits<std::uint8_t>::max()
}
 Collection of bit masks to enable steering which components of a track state should be initialized, and which should be left invalid. More...
enum class  VertexingError {
  VertexingError::NumericFailure = 1 , VertexingError::EmptyInput , VertexingError::SeedingError , VertexingError::NotConverged ,
  VertexingError::ElementNotFound , VertexingError::NoCovariance , VertexingError::SingularMatrix , VertexingError::NonPositiveVariance ,
  VertexingError::MatrixNotPositiveDefinite , VertexingError::InvalidInput , VertexingError::CouldNotRemoveTrack
}
 Error codes for vertexing operations. More...
enum class  VolumeAttachmentStrategy { First , Second , Midpoint , Gap }
 The attachment strategy defines how the volumes are attached Attachment always happens pair-wise. More...
enum class  VolumeResizeStrategy { Expand , Gap }
 The resize strategy defines how the volumes are resized. More...
enum  WrappingCondition {
  Undefined = 0 , Attaching = 1 , Inserting = 2 , Wrapping = 3 ,
  CentralInserting = 4 , CentralWrapping = 5 , NoWrapping = 6
}
 Volume wrapping conditions for cylinder volume building. More...

Functions

template<typename T>
constexpr T abs (const T n)
 Returns the absolute of a number.
 ACTS_DEFINE_ENUM_BITWISE_OPERATORS (MaterialUpdateMode)
 Enable bitwise operators for MaterialUpdateMode enum.
 ACTS_DEFINE_ENUM_BITWISE_OPERATORS (SeedColumns)
 Enable bitwise operators for SeedColumns enum.
 ACTS_DEFINE_ENUM_BITWISE_OPERATORS (SpacePointColumns)
 Enable bitwise operators for SpacePointColumns enum.
BoundVector addBoundParameters (const BoundVector &lhs, const BoundVector &rhs)
 Add bound parameters and take care of angle periodicity for phi and theta.
BinUtility adjustBinUtility (const BinUtility &bu, const CuboidVolumeBounds &cBounds, const Transform3 &transform)
 adjust the BinUtility bu to the dimensions of cuboid volume bounds
BinUtility adjustBinUtility (const BinUtility &bu, const CutoutCylinderVolumeBounds &cBounds, const Transform3 &transform)
 adjust the BinUtility bu to the dimensions of cutout cylinder volume bounds
static BinUtility adjustBinUtility (const BinUtility &bu, const CylinderBounds &cBounds, const Transform3 &transform)
 adjust the BinUtility bu to the dimensions of cylinder bounds
BinUtility adjustBinUtility (const BinUtility &bu, const CylinderVolumeBounds &cBounds, const Transform3 &transform)
 adjust the BinUtility bu to the dimensions of cylinder volume bounds
static BinUtility adjustBinUtility (const BinUtility &bu, const RadialBounds &rBounds, const Transform3 &transform)
 adjust the BinUtility bu to the dimensions of radial bounds
static BinUtility adjustBinUtility (const BinUtility &bu, const RectangleBounds &pBounds, const Transform3 &transform)
 adjust the BinUtility bu to the dimensions of plane bounds
static BinUtility adjustBinUtility (const BinUtility &bu, const Surface &surface, const GeometryContext &gctx)
 adjust the BinUtility bu to a surface
static BinUtility adjustBinUtility (const BinUtility &bu, const TrapezoidBounds &pBounds, const Transform3 &transform)
 adjust the BinUtility bu to the dimensions of plane bounds
BinUtility adjustBinUtility (const GeometryContext &gctx, const BinUtility &bu, const Volume &volume)
 adjust the BinUtility bu to a volume
const std::vector< AxisDirection > & allAxisDirections ()
 Get all possible axis directions.
template<typename T, typename... Axes>
 AnyGridConstView (const Grid< T, Axes... > &grid) -> AnyGridConstView< T >
 Deduction guide for AnyGridConstView from const Grid.
template<typename T, typename... Axes>
 AnyGridView (Grid< T, Axes... > &grid) -> AnyGridView< T >
 Deduction guide for AnyGridView from Grid.
template<typename grid_type>
void applyReferenceExpansion (std::vector< typename grid_type::point_t > &gridQueries, const std::vector< double > &referenceExpansion)
 Run the reference expansion.
float approximateHighlandScattering (float xOverX0)
 Approximate the core width of the projected planar scattering distribution with highland's formula.
template<AxisBoundaryType bdt>
 Axis (AxisBoundaryTypeTag< bdt >, double min, double max, std::size_t bins) -> Axis< AxisType::Equidistant, bdt >
 Deduction guide for equidistant axis with specified boundary type.
template<AxisBoundaryType bdt>
 Axis (AxisBoundaryTypeTag< bdt >, std::vector< double > bins) -> Axis< AxisType::Variable, bdt >
 Deduction guide for variable axis with specified boundary type.
 Axis (double min, double max, std::size_t bins) -> Axis< AxisType::Equidistant, AxisBoundaryType::Open >
 Deduction guide for equidistant axis with open boundaries.
 Axis (std::vector< double > bins) -> Axis< AxisType::Variable, AxisBoundaryType::Open >
 Deduction guide for variable axis with open boundaries.
AxisDirection axisDirectionFromName (const std::string &name)
 Get an axis direction from its string name.
const std::string & axisDirectionName (AxisDirection aDir)
 Get the name of a binning value as a string.
template<std::unsigned_integral T>
constexpr T binomial (const T n, const T k)
 Calculate the binomial coefficient n n!
std::vector< std::size_t > binSequence (std::array< std::size_t, 2u > minMaxBins, std::size_t expand, std::size_t nBins, Acts::AxisBoundaryType type)
 Helper method to generate completely populated bin sequences that respect the boundary type of the axis.
template<typename MatrixType>
MatrixType bitsetToMatrix (const std::bitset< MatrixType::RowsAtCompileTime *MatrixType::ColsAtCompileTime > bs)
 Convert a bitset to a matrix of integers, with each element set to the bit value.
template<typename A, typename B>
Matrix< A::RowsAtCompileTime, B::ColsAtCompileTime > blockedMult (const A &a, const B &b)
 Perform a blocked matrix multiplication, avoiding Eigen GEMM methods.
template<TrackStateProxyConcept track_state_proxy_t>
double calculateFilteredChi2 (track_state_proxy_t trackState)
 Helper function to calculate the filtered chi2.
template<std::size_t nMeasurementDim, TrackStateProxyConcept track_state_proxy_t>
std::pair< Vector< nMeasurementDim >, SquareMatrix< nMeasurementDim > > calculateFilteredResidual (track_state_proxy_t trackState)
 Helper function to calculate the filtered residual and its covariance.
float calculateNucleusMass (PdgParticle pdg)
 Calculate the mass of a nucleus using Bethe-Weizsacker formula Parameters obtained from https://www.actaphys.uj.edu.pl/index_n.php?I=R&V=37&N=6#1833.
template<TrackStateProxyConcept track_state_proxy_t>
double calculatePredictedChi2 (track_state_proxy_t trackState)
 Helper function to calculate the predicted chi2.
template<std::size_t nMeasurementDim, TrackStateProxyConcept track_state_proxy_t>
std::pair< Vector< nMeasurementDim >, SquareMatrix< nMeasurementDim > > calculatePredictedResidual (track_state_proxy_t trackState)
 Helper function to calculate the predicted residual and its covariance.
template<TrackStateProxyConcept track_state_proxy_t>
double calculateSmoothedChi2 (track_state_proxy_t trackState)
 Helper function to calculate the smoothed chi2.
template<std::size_t nMeasurementDim, TrackStateProxyConcept track_state_proxy_t>
std::pair< Vector< nMeasurementDim >, SquareMatrix< nMeasurementDim > > calculateSmoothedResidual (track_state_proxy_t trackState)
 Helper function to calculate the smoothed residual and its covariance.
template<TrackProxyConcept track_proxy_t>
requires (!track_proxy_t::ReadOnly)
void calculateTrackQuantities (track_proxy_t track)
 Helper function to calculate a number of track level quantities and store them on the track itself.
template<TrackStateProxyConcept track_state_proxy_t>
std::pair< BoundVector, BoundMatrixcalculateUnbiasedParametersCovariance (track_state_proxy_t trackState)
 Helper function to calculate the unbiased track parameters and their covariance (i.e.
template<typename T, typename... Args>
constexpr auto cathetusSquare (T hypotenuse, Args... args)
 Calculates the squared cathetus of arguments, i.e.
template<typename T, typename... Args>
constexpr auto cathetusSquareUnchecked (T hypotenuse, Args... args)
 Calculates the squared cathetus of arguments, i.e.
template<std::ranges::sized_range index_range_t>
static bool checkSubspaceIndices (const index_range_t &indexRange, std::size_t fullSize, std::size_t subspaceSize)
 Check subspace indices for consistency.
template<typename T, typename U>
clampValue (U value)
 Clamp a numeric value to another type, respecting range of the target type.
float computeEnergyLossBethe (const MaterialSlab &slab, float m, float qOverP, float absQ)
 Compute the mean energy loss due to ionisation and excitation.
float computeEnergyLossLandau (const MaterialSlab &slab, float m, float qOverP, float absQ)
 Compute the most probable energy loss due to ionisation and excitation.
float computeEnergyLossLandauFwhm (const MaterialSlab &slab, float m, float qOverP, float absQ)
 Compute the full with half maximum of landau energy loss distribution.
float computeEnergyLossLandauSigma (const MaterialSlab &slab, float m, float qOverP, float absQ)
 Compute the Gaussian-equivalent sigma for the ionisation loss fluctuations.
float computeEnergyLossLandauSigmaQOverP (const MaterialSlab &slab, float m, float qOverP, float absQ)
 Compute q/p Gaussian-equivalent sigma due to ionisation loss fluctuations.
float computeEnergyLossMean (const MaterialSlab &slab, PdgParticle absPdg, float m, float qOverP, float absQ)
 Compute the combined mean energy loss.
float computeEnergyLossMode (const MaterialSlab &slab, PdgParticle absPdg, float m, float qOverP, float absQ)
 Compute the combined most probably energy loss.
float computeEnergyLossRadiative (const MaterialSlab &slab, PdgParticle absPdg, float m, float qOverP, float absQ)
 Compute the mean energy loss due to radiative effects at high energies.
float computeMultipleScatteringTheta0 (const MaterialSlab &slab, PdgParticle absPdg, float m, float qOverP, float absQ)
 Compute the core width of the projected planar scattering distribution.
template<typename out_t, typename sign_t>
constexpr out_t copySign (const out_t &copyTo, const sign_t &sign)
 Copies the sign of a signed variable onto the copyTo input object.
template<typename InputVector>
auto createCurvilinearUnitU (const Eigen::MatrixBase< InputVector > &direction)
 Construct the first curvilinear unit vector U for the given direction.
template<typename InputVector>
auto createCurvilinearUnitVectors (const Eigen::MatrixBase< InputVector > &direction)
 Construct the curvilinear unit vectors U and V for the given direction.
Grid2D createGrid (MaterialGridAxisData gridAxis1, MaterialGridAxisData gridAxis2)
 Helper method that creates the cache grid for the mapping.
Grid3D createGrid (MaterialGridAxisData gridAxis1, MaterialGridAxisData gridAxis2, MaterialGridAxisData gridAxis3)
 Helper method that creates the cache grid for the mapping.
Grid2D createGrid2D (const BinUtility &bins, std::function< Acts::Vector2(Acts::Vector3)> &transfoGlobalToLocal)
 Create a 2DGrid using a BinUtility.
Grid3D createGrid3D (const BinUtility &bins, std::function< Acts::Vector3(Acts::Vector3)> &transfoGlobalToLocal)
 Create a 3DGrid using a BinUtility.
template<class T, class decorator_t>
void decorateJson (const decorator_t *decorator, const T &src, nlohmann::json &dest)
 Decorate JSON with additional information from the decorator.
template<class T, class decorator_t>
void decorateJson (const decorator_t *decorator, const T *src, nlohmann::json &dest)
 Decorate JSON with additional information from the decorator (pointer version).
float deriveEnergyLossBetheQOverP (const MaterialSlab &slab, float m, float qOverP, float absQ)
 Derivative of the Bethe energy loss with respect to q/p.
float deriveEnergyLossLandauQOverP (const MaterialSlab &slab, float m, float qOverP, float absQ)
 Derivative of the most probable ionisation energy loss with respect to q/p.
float deriveEnergyLossMeanQOverP (const MaterialSlab &slab, PdgParticle absPdg, float m, float qOverP, float absQ)
 Derivative of the combined mean energy loss with respect to q/p.
float deriveEnergyLossModeQOverP (const MaterialSlab &slab, PdgParticle absPdg, float m, float qOverP, float absQ)
 Derivative of the combined most probable energy loss with respect to q/p.
float deriveEnergyLossRadiativeQOverP (const MaterialSlab &slab, PdgParticle absPdg, float m, float qOverP, float absQ)
 Derivative of the mean radiative energy loss with respect to q/p.
template<std::size_t FullSize>
requires (FullSize <= 8)
static SubspaceIndices< FullSize > deserializeSubspaceIndices (SerializedSubspaceIndices serialized)
 Deserialize subspace indices from a single 64 bit integer.
template<typename container_type, typename index_type = typename std::decay_t<container_type>::size_type, typename container_type_iter = decltype(std::begin(std::declval<container_type>())), typename = decltype(std::end(std::declval<container_type>()))>
constexpr auto enumerate (container_type &&iterable)
 Helper utility to allow indexed enumeration with structured binding.
BoundMatrix estimateTrackParamCovariance (const EstimateTrackParamCovarianceConfig &config, const BoundVector &params, bool hasTime)
 Estimate the covariance matrix of the given track parameters based on the provided configuration.
Result< BoundVectorestimateTrackParamsFromSeed (const GeometryContext &gctx, const Surface &surface, const Vector3 &sp0, double t0, const Vector3 &sp1, const Vector3 &sp2, const Vector3 &bField)
 Estimate bound track parameters from three space points.
template<std::ranges::range space_point_range_t>
Result< BoundVectorestimateTrackParamsFromSeed (const GeometryContext &gctx, space_point_range_t spRange, const Surface &surface, const Vector3 &bField)
 Estimate bound track parameters from three space points.
FreeVector estimateTrackParamsFromSeed (const Vector3 &sp0, const Vector3 &sp1, const Vector3 &sp2, const Vector3 &bField)
 Estimate free track parameters from three space points.
FreeVector estimateTrackParamsFromSeed (const Vector3 &sp0, double t0, const Vector3 &sp1, const Vector3 &sp2, const Vector3 &bField)
 Estimate free track parameters from three space points.
template<std::ranges::range space_point_range_t>
FreeVector estimateTrackParamsFromSeed (space_point_range_t spRange, const Vector3 &bField)
 Estimate free track parameters from three space points.
template<typename queries_type, typename expansion_type, std::size_t kDIM>
void expand (queries_type &gridQueries, const expansion_type &referenceExpansion)
 Helper method to expand the grid queries along a given dimension.
static constexpr std::pair< std::int32_t, std::int32_t > extractNucleusZandA (PdgParticle pdg)
 Extract Z and A for a given nucleus.
template<TrackContainerFrontend track_container_t, typename propagator_t, typename propagator_options_t>
Result< void > extrapolateTracksToReferenceSurface (const track_container_t &trackContainer, const Surface &referenceSurface, const propagator_t &propagator, propagator_options_t options, TrackExtrapolationStrategy strategy, const Logger &logger= *getDefaultLogger("TrackExtrapolation", Logging::INFO))
 Extrapolate tracks to a reference surface.
template<TrackProxyConcept track_proxy_t, typename propagator_t, typename propagator_options_t>
Result< void > extrapolateTrackToReferenceSurface (track_proxy_t &track, const Surface &referenceSurface, const propagator_t &propagator, propagator_options_t options, TrackExtrapolationStrategy strategy, const Logger &logger= *getDefaultLogger("TrackExtrapolation", Logging::INFO))
 Extrapolate a track to a reference surface.
template<std::unsigned_integral T>
constexpr T factorial (const T N)
 Calculate the the factorial of an integer.
template<typename T, typename... Args>
constexpr auto fastCathetus (T hypotenuse, Args... args)
 Fast cathetus calculation for multiple arguments.
template<typename T>
constexpr auto fastHypot (T arg)
 Overload for single argument.
template<typename... T>
constexpr auto fastHypot (T... args)
 Fast hypotenuse calculation for multiple arguments.
Acts::InterpolatedBFieldMap< Acts::Grid< Acts::Vector2, Acts::Axis< Acts::AxisType::Equidistant >, Acts::Axis< Acts::AxisType::Equidistant > > > fieldMapRZ (const std::function< std::size_t(std::array< std::size_t, 2 > binsRZ, std::array< std::size_t, 2 > nBinsRZ)> &localToGlobalBin, std::vector< double > rPos, std::vector< double > zPos, const std::vector< Acts::Vector2 > &bField, double lengthUnit=UnitConstants::mm, double BFieldUnit=UnitConstants::T, bool firstQuadrant=false)
 Method to set up the FieldMap.
Acts::InterpolatedBFieldMap< Acts::Grid< Acts::Vector3, Acts::Axis< Acts::AxisType::Equidistant >, Acts::Axis< Acts::AxisType::Equidistant >, Acts::Axis< Acts::AxisType::Equidistant > > > fieldMapXYZ (const std::function< std::size_t(std::array< std::size_t, 3 > binsXYZ, std::array< std::size_t, 3 > nBinsXYZ)> &localToGlobalBin, std::vector< double > xPos, std::vector< double > yPos, std::vector< double > zPos, const std::vector< Acts::Vector3 > &bField, double lengthUnit=UnitConstants::mm, double BFieldUnit=UnitConstants::T, bool firstOctant=false)
 Method to set up the FieldMap.
template<typename T, std::size_t N>
constexpr std::array< T, N > filledArray (const T &defVal)
 creates an array of type T and size N and assigns all elements to the parsed default value def_val.
std::optional< float > findCharge (PdgParticle pdg)
 Find the charge for a given PDG particle number.
float findChargeOfNucleus (PdgParticle pdg)
 Find the charge for a given PDG particle number of a nucleus.
template<TrackProxyConcept track_proxy_t>
Result< typename track_proxy_t::ConstTrackStateProxy > findFirstMeasurementState (const track_proxy_t &track)
 Find the first measurement state in a track.
template<TrackProxyConcept track_proxy_t>
Result< typename track_proxy_t::ConstTrackStateProxy > findLastMeasurementState (const track_proxy_t &track)
 Find the last measurement state in a track.
std::optional< float > findMass (PdgParticle pdg)
 Find the mass for a given PDG particle number.
float findMassOfNucleus (PdgParticle pdg)
 Find the mass for a given PDG particle number of a nucleus.
std::optional< std::string_view > findName (PdgParticle pdg)
 Find a descriptive particle name for a given PDG particle number.
std::optional< std::string_view > findNameOfNucleus (PdgParticle pdg)
 Find a descriptive particle name for a given PDG particle number of a nucleus.
std::optional< ParticleDatafindParticleData (PdgParticle pdg)
 Find all known particle data for a given PDG particle number.
template<TrackProxyConcept track_proxy_t>
Result< std::pair< typename track_proxy_t::ConstTrackStateProxy, double > > findTrackStateForExtrapolation (const GeometryContext &geoContext, const track_proxy_t &track, const Surface &referenceSurface, TrackExtrapolationStrategy strategy, const Logger &logger= *getDefaultLogger("TrackExtrapolation", Logging::INFO))
 Find a track state for extrapolation.
Matrix< 2, 3 > freeToSphericalDirectionJacobian (const Vector3 &direction)
 Calculates the Jacobian for free to spherical direction vector transformation.
void from_json (const nlohmann::json &j, BinningData &bd)
 Convert JSON to BinningData.
void from_json (const nlohmann::json &j, BinUtility &bu)
 Convert JSON to BinUtility.
void from_json (const nlohmann::json &j, ConfigPair &p)
 Convert JSON to ConfigPair.
void from_json (const nlohmann::json &j, Direction &direction)
 Convert JSON to Direction.
void from_json (const nlohmann::json &j, Extent &e)
 Convert JSON to Extent.
void from_json (const nlohmann::json &j, GeometryIdentifier &geoId)
 Read from JSON.
void from_json (const nlohmann::json &j, Material &t)
 Convert JSON to Material.
void from_json (const nlohmann::json &j, MaterialSlab &t)
 Convert JSON to MaterialSlab.
void from_json (const nlohmann::json &j, MaterialSlabMatrix &t)
 Convert JSON to MaterialSlabMatrix.
template<typename Type>
void from_json (const nlohmann::json &j, Range1D< Type > &r)
 Convert JSON to Range1D.
void from_json (const nlohmann::json &j, SeedConfirmationRangeConfig &config)
 Convert JSON to SeedConfirmationRangeConfig.
void from_json (const nlohmann::json &j, surfaceMaterialPointer &material)
 Convert JSON to surfaceMaterialPointer.
void from_json (const nlohmann::json &j, Transform3 &t)
 Convert JSON to Transform3.
void from_json (const nlohmann::json &j, volumeMaterialPointer &material)
 Convert JSON to volumeMaterialPointer.
std::unique_ptr< const LoggergetDefaultLogger (const std::string &name, const Logging::Level &lvl, std::ostream *log_stream=&std::cout)
 get default debug output logger
const LoggergetDummyLogger ()
 Get a dummy logger that discards all output.
std::function< double(Acts::Vector3)> globalToLocalFromBin (Acts::AxisDirection &type)
 return a function that return the coordinate corresponding to type of bin
template<typename T, class... Axes>
 Grid (TypeTag< T >, Axes &&... axes) -> Grid< T, Axes... >
 Deduction guide for Grid with rvalue reference axes.
template<typename T, class... Axes>
 Grid (TypeTag< T >, Axes &... axes) -> Grid< T, Axes... >
 Deduction guide for Grid with lvalue reference axes.
template<typename T, class... Axes>
 GridGlobalIterator (const Grid< T, Axes... > &grid, std::size_t idx) -> GridGlobalIterator< T, Axes... >
 Deduction guide for GridGlobalIterator.
consteval HashedString hashString (std::string_view s)
 Compile-time hash of string literal.
constexpr HashedString hashStringDynamic (std::string_view s)
 Runtime hash of string.
template<typename... T>
constexpr auto hypotSquare (T... args)
 Calculates the sum of squares of arguments.
template<typename T, std::size_t N, class Point1, class Point2 = Point1, class Point3 = Point2>
requires (Concepts::interpolatable<T, Point1, Point2, Point3>)
interpolate (const Point1 &position, const Point2 &lowerCorner, const Point3 &upperCorner, const std::array< T, N > &values)
 performs linear interpolation inside a hyper box
bool isBoundVectorValid (const BoundVector &v, bool validateAngleRange, double epsilon=1e-6, double maxAbsEta=std::numeric_limits< double >::infinity())
 Check if a bound vector is valid.
bool isFreeVectorValid (const FreeVector &v, double epsilon=1e-6, double maxAbsEta=std::numeric_limits< double >::infinity())
 Check if a free vector is valid.
static constexpr bool isNucleus (PdgParticle pdg)
 Check if the PDG belongs to a nucleus, i.e.
template<std::ranges::range R>
requires std::convertible_to<std::ranges::range_value_t<R>, std::string_view>
std::string joinStrings (R &&strings, std::string_view delimiter)
 Utuility to join a range of strings with a delimiter.
template<std::ranges::range R>
requires detail::formattable<std::ranges::range_value_t<R>, char>
std::string joinStrings (R &&values, std::string_view delimiter, std::format_string< const std::ranges::range_value_t< R > & > format)
 Utility to join a range of formattable elements with a delimiter and custom format string.
template<typename grid_type>
std::set< typename grid_type::index_t > localIndices (const grid_type &grid, const std::vector< typename grid_type::point_t > &queries, const std::vector< std::size_t > &expansion={})
 Helper method to fill local bins given a set of query points bin in between the extra points are filled, and a possible expansion of the bin window can be chosen.
std::error_code make_error_code (Acts::CombinatorialKalmanFilterError e)
 Create error code from CombinatorialKalmanFilterError.
std::error_code make_error_code (Acts::KalmanFitterError e)
 Create error code from KalmanFitterError.
std::error_code make_error_code (Acts::MultiStepperError e)
 Create error code from MultiStepperError.
std::error_code make_error_code (Acts::NavigatorError e)
 Create error code from NavigatorError.
std::error_code make_error_code (Acts::PortalError e)
 Create error code from PortalError.
std::error_code make_error_code (Acts::PropagatorError e)
 Create error code from PropagatorError.
std::error_code make_error_code (Acts::SurfaceError e)
 Create error code from SurfaceError.
std::error_code make_error_code (Acts::VertexingError e)
 Create error code from VertexingError.
std::error_code make_error_code (EigenStepperError e)
 Create error code from EigenStepperError.
std::error_code make_error_code (GsfError e)
 Create error code from GsfError.
std::error_code make_error_code (SpacePointFormationError e)
 Create error code from SpacePointFormationError.
std::error_code make_error_code (TrackExtrapolationError e)
 Create error code from TrackExtrapolationError.
template<typename box_t>
box_t * make_octree (std::vector< std::unique_ptr< box_t > > &store, const std::vector< box_t * > &prims, std::size_t max_depth=1, typename box_t::value_type envelope1=0)
 Build an octree from a list of bounding boxes.
static constexpr PdgParticle makeAbsolutePdgParticle (PdgParticle pdg)
 Convert an anti-particle to its particle and leave particles as-is.
AtlasBetheHeitlerApprox makeDefaultBetheHeitlerApprox (bool clampToRange=false)
 Creates a AtlasBetheHeitlerApprox object based on an ATLAS configuration, that are stored as static data in the source code.
template<typename T>
Eigen::Matrix< T, 3, 1 > makeDirectionFromAxisTangents (T tanAlpha, T tanBeta)
 Construct a normalized direction vector from the tangents of the x-axis to the z-axis and of the y-axis to the z-axis.
template<typename T>
Eigen::Matrix< T, 3, 1 > makeDirectionFromPhiEta (T phi, T eta)
 Construct a normalized direction vector from phi angle and pseudorapidity.
template<typename T>
Eigen::Matrix< T, 3, 1 > makeDirectionFromPhiTheta (T phi, T theta)
 Construct a normalized direction vector from phi and theta angle.
template<typename payload_t>
std::unique_ptr< IGridmakeGrid (const ProtoAxis &a)
 Helper method to create a 1D grid from a single proto axis.
template<typename payload_t>
std::unique_ptr< IGridmakeGrid (const ProtoAxis &a, const ProtoAxis &b)
 Helper method to create a 2D grid from a two proto axes.
InterpolatedBFieldMap< Grid< Vector2, Axis< AxisType::Equidistant >, Axis< AxisType::Equidistant > > > makeMagneticFieldMapRzFromText (const std::function< std::size_t(std::array< std::size_t, 2 > binsRZ, std::array< std::size_t, 2 > nBinsRZ)> &localToGlobalBin, const std::string &fieldMapFile, double lengthUnit, double BFieldUnit, bool firstQuadrant=false, const std::string &delimiter="")
 Method to set up the FieldMapper.
InterpolatedBFieldMap< Grid< Vector3, Axis< AxisType::Equidistant >, Axis< AxisType::Equidistant >, Axis< AxisType::Equidistant > > > makeMagneticFieldMapXyzFromText (const std::function< std::size_t(std::array< std::size_t, 3 > binsXYZ, std::array< std::size_t, 3 > nBinsXYZ)> &localToGlobalBin, const std::string &fieldMapFile, double lengthUnit, double BFieldUnit, bool firstOctant=false, const std::string &delimiter="")
 Method to set up the FieldMapper.
static constexpr PdgParticle makeNucleusGroundState (PdgParticle pdg)
 Convert an excited nucleus to its ground state.
template<typename T>
Eigen::Matrix< T, 2, 1 > makePhiThetaFromDirection (const Eigen::Matrix< T, 3, 1 > &unitDir)
 Construct a phi and theta angle from a direction vector.
MaterialGrid2D mapMaterialPoints (Grid2D &grid)
 Average the material collected in a 2D grid and use it to create a 2D material grid.
MaterialGrid3D mapMaterialPoints (Grid3D &grid)
 Average the material collected in a 3D grid and use it to create a 3D material grid.
MaterialMapLookup< Grid< Material::ParametersVector, Axis< Acts::AxisType::Equidistant >, Axis< Acts::AxisType::Equidistant > > > materialMapperRZ (const std::function< std::size_t(std::array< std::size_t, 2 > binsRZ, std::array< std::size_t, 2 > nBinsRZ)> &materialVectorToGridMapper, std::vector< double > rPos, std::vector< double > zPos, const std::vector< Acts::Material > &material, double lengthUnit=UnitConstants::mm)
 Method to set up the MaterialMapper.
MaterialMapLookup< Grid< Material::ParametersVector, Axis< Acts::AxisType::Equidistant >, Axis< Acts::AxisType::Equidistant >, Axis< Acts::AxisType::Equidistant > > > materialMapperXYZ (const std::function< std::size_t(std::array< std::size_t, 3 > binsXYZ, std::array< std::size_t, 3 > nBinsXYZ)> &materialVectorToGridMapper, std::vector< double > xPos, std::vector< double > yPos, std::vector< double > zPos, const std::vector< Material > &material, double lengthUnit=UnitConstants::mm)
 Method to set up the MaterialLookup.
template<typename Derived>
auto matrixToBitset (const Eigen::PlainObjectBase< Derived > &m)
 Convert an integer matrix to a bitset.
 NLOHMANN_JSON_SERIALIZE_ENUM (Acts::MappingType, { {Acts::MappingType::PreMapping, "PreMapping"}, {Acts::MappingType::Default, "Default"}, {Acts::MappingType::PostMapping, "PostMapping"}, {Acts::MappingType::Sensor, "Sensor"}, }) namespace MaterialJsonConverter
 JSON serialization mapping for MappingType enum.
BoundVector normalizeBoundParameters (const BoundVector &boundParams)
 Normalize the bound parameter angles.
constexpr std::size_t numAxisDirections ()
 Returns the total number of axis directions.
std::ostream & operator<< (std::ostream &os, AxisBoundaryType bdt)
 Stream operator for AxisBoundaryType.
std::ostream & operator<< (std::ostream &os, AxisDirection aDir)
 Output stream operator for AxisDirection.
std::ostream & operator<< (std::ostream &os, AxisType type)
 Stream operator for AxisType.
std::ostream & operator<< (std::ostream &os, BoundarySurfaceFace &face)
 Stream operator for BoundarySurfaceFace.
template<typename T, typename U, std::size_t V>
std::ostream & operator<< (std::ostream &os, const AxisAlignedBoundingBox< T, U, V > &box)
 Overload of the << operator for bounding boxes.
std::ostream & operator<< (std::ostream &os, const ConstrainedStep &step)
 Stream operator for ConstrainedStep.
std::ostream & operator<< (std::ostream &os, const IVisualization3D &hlp)
 Stream operator for IVisualization3D.
std::ostream & operator<< (std::ostream &os, const Material &material)
 Stream operator for Material.
std::ostream & operator<< (std::ostream &os, const MaterialSlab &materialSlab)
 Stream operator for MaterialSlab.
template<typename T, std::size_t D>
std::ostream & operator<< (std::ostream &os, const Ray< T, D > &ray)
 Overload of the outstream operator.
std::ostream & operator<< (std::ostream &os, const std::vector< DirectedProtoAxis > &a)
 Stream operator for vector of DirectedProtoAxis.
std::ostream & operator<< (std::ostream &os, const std::vector< ProtoAxis > &a)
 Stream operator for vector of ProtoAxis.
std::ostream & operator<< (std::ostream &os, const TrackSelector::Config &cuts)
std::ostream & operator<< (std::ostream &os, const TrackSelector::EtaBinnedConfig &cfg)
std::ostream & operator<< (std::ostream &os, CuboidPortalShell::Face face)
 Output stream operator for the CuboidPortalShell::Face enum.
std::ostream & operator<< (std::ostream &os, CylinderPortalShell::Face face)
 Output stream operator for the CylinderPortalShell::Face enum.
std::ostream & operator<< (std::ostream &os, DiamondPortalShell::Face face)
std::ostream & operator<< (std::ostream &os, GeometryIdentifier id)
 Stream operator for GeometryIdentifier.
std::ostream & operator<< (std::ostream &os, HadronType hadron)
 Stream operator for HadronType.
std::ostream & operator<< (std::ostream &os, IntersectionStatus status)
 Ostream-operator for the IntersectionStatus enum.
std::ostream & operator<< (std::ostream &os, MaterialUpdateMode mode)
 Stream operator for MaterialUpdateMode.
std::ostream & operator<< (std::ostream &os, PdgParticle pdg)
 Print PDG particle numbers with a descriptive name.
std::ostream & operator<< (std::ostream &os, TrackStatePropMask mask)
 Stream operator for TrackStatePropMask.
std::ostream & operator<< (std::ostream &os, TrapezoidPortalShell::Face face)
 Output stream operator for the TrapezoidPortalShell::Face enum.
std::ostream & operator<< (std::ostream &os, VolumeAttachmentStrategy strategy)
 Stream operator for VolumeAttachmentStrategy.
std::ostream & operator<< (std::ostream &os, VolumeResizeStrategy strategy)
 Stream operator for VolumeResizeStrategy.
std::ostream & operator<< (std::ostream &sl, const Extent &rhs)
 Overload of << operator for std::ostream for debug output.
std::ostream & operator<< (std::ostream &sl, const GlueVolumesDescriptor &gvd)
 Stream operator for GlueVolumesDescriptor.
std::ostream & operator<< (std::ostream &sl, const Volume &vol)
 Overload of << operator for std::ostream for debug output.
std::ostream & operator<< (std::ostream &sl, const VolumeBounds &vb)
 Overload of << operator for std::ostream for debug output.
std::ostream & operator<< (std::ostream &sl, const VolumeBounds::BoundsType &bt)
 Stream operator for VolumeBounds::BoundsType.
bool operator== (const VolumeBounds &lhs, const VolumeBounds &rhs)
 Equality comparison for VolumeBounds.
template<typename local_bin>
std::string outputIndices (const std::set< local_bin > &lbins)
 Helper method to screen output the local bins.
template<class... Ts>
 overloaded (Ts...) -> overloaded< Ts... >
 Deduction guide for overloaded visitor pattern.
PdgParticle parsePdgParticle (const std::string &name)
 Parse a PdgParticle from a particle name string.
std::optional< std::string_view > pdgToShortAbsString (PdgParticle pdg)
 Get short absolute string representation of PDG particle.
template<typename T, std::integral P>
constexpr T pow (T x, P p)
 Calculates the ordinary power of the number x.
template<int n>
std::string printEigenDecomposition (const SquareMatrix< n > &mat)
 Print the eigen decomposition of a symmetric matrix in terms of eigen values and eigen vectors.
template<std::unsigned_integral T>
constexpr T product (const T lowerN, const T upperN)
 Calculates the product of all integers within the given integer range (nLower)(nLower+1)(...)(upper-1)(upper).
template<std::size_t kFullSize, typename Derived>
SubspaceIndices< kFullSize > projectorToSubspaceIndices (const Eigen::DenseBase< Derived > &projector)
 Convert a projector to subspace indices.
template<typename T>
std::tuple< typename T::value_type, double > range_medium (const T &tseries)
 Return range and medium of an unsorted numeric series.
template<typename R>
bool rangeContainsSubstring (const R &range, std::string_view value)
 This function checks if at least one string from a given range is contained within a specified string (value).
template<typename R, typename T>
bool rangeContainsValue (const R &range, const T &value)
 This can be replaced with C++23 to use the std::ranges::contains method.
void reduceMixtureLargestWeights (std::vector< GsfComponent > &cmpCache, std::size_t maxCmpsAfterMerge, const Surface &surface)
 Very simple mixture reduction method: Just removes the components with the smallest weight until the required number of components is reached.
void reduceMixtureWithKLDistance (std::vector< GsfComponent > &cmpCache, std::size_t maxCmpsAfterMerge, const Surface &surface)
 Greedy component reduction algorithm.
void reduceMixtureWithKLDistanceNaive (std::vector< GsfComponent > &cmpCache, std::size_t maxCmpsAfterMerge, const Surface &surface)
 Naive implementation of component reduction with KL-distance.
BoundVector reflectBoundParameters (const BoundVector &boundParams)
 Reflect bound track parameters.
FreeVector reflectFreeParameters (const FreeVector &freeParams)
 Reflect free track parameters.
template<typename T>
constexpr T safeExp (T val) noexcept
 Calculate the exponential function while avoiding FPEs.
template<typename MatrixType, typename ResultType = MatrixType>
std::optional< ResultType > safeInverse (const MatrixType &m) noexcept
 FPE "safe" functions.
template<std::size_t FullSize>
requires (FullSize <= 8)
static SerializedSubspaceIndices serializeSubspaceIndices (const SubspaceIndices< FullSize > &indices)
 Serialize subspace indices to a single 64 bit integer.
template<typename T, typename... Args>
constexpr auto slowCathetus (T hypotenuse, Args... args)
 Slow but more accurate cathetus calculation for multiple arguments.
template<typename T>
constexpr auto slowHypot (T arg)
 Overload for single argument.
template<typename T>
constexpr auto slowHypot (T x, T y)
 Overload for two arguments.
template<typename T>
constexpr auto slowHypot (T x, T y, T z)
 Overload for three arguments.
template<typename... T>
constexpr auto slowHypot (T... args)
 Slow but more accurate hypotenuse calculation for multiple arguments.
template<TrackProxyConcept track_proxy_t, typename smoother_t = GainMatrixSmoother>
Result< void > smoothTrack (const GeometryContext &geoContext, track_proxy_t &track, const Logger &logger= *getDefaultLogger("TrackSmoother", Logging::INFO), smoother_t smoother=GainMatrixSmoother())
 Smooth a track using the gain matrix smoother.
template<TrackContainerFrontend track_container_t>
Result< void > smoothTracks (const GeometryContext &geoContext, const track_container_t &trackContainer, const Logger &logger= *getDefaultLogger("TrackSmoother", Logging::INFO))
 Smooth tracks using the gain matrix smoother.
Acts::InterpolatedBFieldMap< Acts::Grid< Acts::Vector2, Acts::Axis< Acts::AxisType::Equidistant >, Acts::Axis< Acts::AxisType::Equidistant > > > solenoidFieldMap (const std::pair< double, double > &rLim, const std::pair< double, double > &zLim, const std::pair< std::size_t, std::size_t > &nBins, const SolenoidBField &field)
 Function which takes an existing SolenoidBField instance and creates a field mapper by sampling grid points from the analytical solenoid field.
Matrix< 3, 2 > sphericalToFreeDirectionJacobian (const Vector3 &direction)
 Calculates the Jacobian for spherical to free direction vector transformation.
template<typename T>
constexpr auto square (T x)
 Returns the square of the passed number.
BoundVector subtractBoundParameters (const BoundVector &lhs, const BoundVector &rhs)
 Subtract bound parameters and take care of angle periodicity for phi and theta.
template<std::integral T>
constexpr T sumUpToN (const T N)
 Calculates the sum of 1 + 2 + 3+ ... + N using the Gaussian sum formula.
std::shared_ptr< SurfacesurfaceFromJson (const nlohmann::json &j)
 Conversion to Surface from jsonn.
template<typename surface_t, typename bounds_t>
std::shared_ptr< surface_t > surfaceFromJsonT (const nlohmann::json &j)
 Conversion to Surface from json in correct type.
template<std::size_t N>
requires (N > 1)
constexpr std::array< std::size_t, 2 > symMatIndices (const std::size_t k)
 Map an unrolled vector index to the indices of the lower triangular part of a symmetric N x N matrix.
template<template< std::size_t > class Callable, std::size_t N, std::size_t NMAX, typename... Args>
auto template_switch (std::size_t v, Args &&... args)
 Dispatch a call based on a runtime value on a function taking the value at compile time.
template<std::size_t N, std::size_t NMAX, typename Lambda, typename... Args>
auto template_switch_lambda (std::size_t v, Lambda &&func, Args &&... args)
 Alternative version of template_switch which accepts a generic lambda and communicates the dimension via an integral constant type.
void to_json (nlohmann::json &j, const Acts::TrackingVolume &volume)
 Convert TrackingVolume to JSON.
void to_json (nlohmann::json &j, const BinningData &bd)
 Convert BinningData to JSON.
void to_json (nlohmann::json &j, const BinUtility &bu)
 Convert BinUtility to JSON.
void to_json (nlohmann::json &j, const Direction &direction)
 Convert Direction to JSON.
void to_json (nlohmann::json &j, const Extent &e)
 Convert Extent to JSON.
void to_json (nlohmann::json &j, const GeometryIdentifier &geoId)
 Write to JSON.
void to_json (nlohmann::json &j, const Material &t)
 Convert Material to JSON.
void to_json (nlohmann::json &j, const MaterialSlab &t)
 Convert MaterialSlab to JSON.
template<typename Type>
void to_json (nlohmann::json &j, const Range1D< Type > &r)
 Convert Range1D to JSON.
void to_json (nlohmann::json &j, const SeedConfirmationRangeConfig &config)
 Convert SeedConfirmationRangeConfig to JSON.
void to_json (nlohmann::json &j, const std::pair< const Acts::TrackingVolume *, std::shared_ptr< const Acts::IVolumeMaterial > > &volume)
 Convert tracking volume and material pair to JSON.
void to_json (nlohmann::json &j, const std::shared_ptr< const Surface > &surface)
 Convert shared_ptr<Surface> to JSON.
void to_json (nlohmann::json &j, const Surface &surface)
 Convert Surface to JSON.
void to_json (nlohmann::json &j, const SurfaceAndMaterialWithContext &surface)
 Convert SurfaceAndMaterialWithContext to JSON.
void to_json (nlohmann::json &j, const SurfaceBounds &bounds)
 Convert SurfaceBounds to JSON.
void to_json (nlohmann::json &j, const surfaceMaterialPointer &material)
 Convert surfaceMaterialPointer to JSON.
void to_json (nlohmann::json &j, const Transform3 &t)
 Convert Transform3 to JSON.
void to_json (nlohmann::json &j, const VolumeBounds &bounds)
 Convert VolumeBounds to JSON.
void to_json (nlohmann::json &j, const volumeMaterialPointer &material)
 Convert volumeMaterialPointer to JSON.
template<std::size_t kDIM, typename value_t>
std::array< value_t, kDIM > toArray (const std::vector< value_t > &vecvals)
 Converts a vector to a fixed-size array with truncating or padding.
void toJson (nlohmann::json &j, const std::shared_ptr< const Surface > &surface, const Acts::GeometryContext &gctx)
 Contextual conversion of a surface.
Acts::InterpolatedBFieldMap< Acts::Grid< Acts::Vector3, Acts::Axis< Acts::AxisType::Equidistant >, Acts::Axis< Acts::AxisType::Equidistant >, Acts::Axis< Acts::AxisType::Equidistant > > > toroidFieldMapCyl (const std::pair< double, double > &rLim, const std::pair< double, double > &phiLim, const std::pair< double, double > &zLim, const std::tuple< std::size_t, std::size_t, std::size_t > &nBins, const ToroidField &field)
 Function which takes an existing ToroidField instance and creates a cylindrical field mapper by sampling grid points from the analytical toroidal field.
Acts::InterpolatedBFieldMap< Acts::Grid< Acts::Vector3, Acts::Axis< Acts::AxisType::Equidistant >, Acts::Axis< Acts::AxisType::Equidistant >, Acts::Axis< Acts::AxisType::Equidistant > > > toroidFieldMapXYZ (const std::pair< double, double > &xLim, const std::pair< double, double > &yLim, const std::pair< double, double > &zLim, const std::tuple< std::size_t, std::size_t, std::size_t > &nBins, const ToroidField &field)
 Function which takes an existing ToroidField instance and creates a Cartesian field mapper by sampling grid points from the analytical toroidal field.
std::string toString (const Acts::Transform3 &transform, int precision=4, const std::string &offset="")
 Print out a transform in a structured way.
std::string toString (const Acts::Translation3 &translation, int precision=4)
 Print out a translation in a structured way.
template<typename derived_t>
std::string toString (const Eigen::MatrixBase< derived_t > &matrix, int precision=4, const std::string &offset="")
 Print out a matrix in a structured way.
std::string toString (const std::vector< double > &pVector, int precision=4)
 Print out a vector of double.
template<typename enum_t>
constexpr std::underlying_type_t< enum_t > toUnderlying (enum_t value)
 Convert enum to its underlying type value.
template<TrackContainerBackend track_container_t, typename traj_t>
 TrackContainer (const track_container_t &container, const traj_t &traj) -> TrackContainer< track_container_t, traj_t, ConstRefHolder >
 Deduction guide for TrackContainer with const references.
template<TrackContainerBackend track_container_t, typename traj_t>
 TrackContainer (track_container_t &&container, traj_t &&traj) -> TrackContainer< track_container_t, traj_t, ValueHolder >
 Deduction guide for TrackContainer with rvalue references.
template<TrackContainerBackend track_container_t, typename traj_t>
 TrackContainer (track_container_t &container, traj_t &traj) -> TrackContainer< track_container_t, traj_t, RefHolder >
 Deduction guide for TrackContainer with lvalue references.
FreeVector transformBoundToFreeParameters (const Surface &surface, const GeometryContext &geoCtx, const BoundVector &boundParams)
 Transform bound track parameters into equivalent free track parameters.
template<typename external_space_point_t, typename callable_t>
LinCircle transformCoordinates (Acts::SpacePointMutableData &mutableData, const external_space_point_t &sp, const external_space_point_t &spM, bool bottom, callable_t &&extractFunction)
 Transform a single space point to u-v space coordinates.
template<typename external_space_point_t>
void transformCoordinates (Acts::SpacePointMutableData &mutableData, const std::vector< const external_space_point_t * > &vec, const external_space_point_t &spM, bool bottom, std::vector< LinCircle > &linCircleVec)
 Transform a vector of space points to u-v space circles with respect to a given middle space point.
Result< BoundVectortransformFreeToBoundParameters (const FreeVector &freeParams, const Surface &surface, const GeometryContext &geoCtx, double tolerance=s_onSurfaceTolerance)
 Convert free track parameters to bound track parameters.
Result< BoundVectortransformFreeToBoundParameters (const Vector3 &position, double time, const Vector3 &direction, double qOverP, const Surface &surface, const GeometryContext &geoCtx, double tolerance=s_onSurfaceTolerance)
 Convert position and direction to bound track parameters.
BoundVector transformFreeToCurvilinearParameters (double time, const Vector3 &direction, double qOverP)
 Convert direction to curvilinear track parameters.
BoundVector transformFreeToCurvilinearParameters (double time, double phi, double theta, double qOverP)
 Convert direction angles to curvilinear track parameters.
template<TrackProxyConcept track_proxy_t>
requires (!track_proxy_t::ReadOnly)
void trimTrack (track_proxy_t track, bool trimHoles, bool trimOutliers, bool trimMaterial, bool trimOtherNoneMeasurement)
 Helper function to trim track states from the front and back of a track.
template<TrackProxyConcept track_proxy_t>
requires (!track_proxy_t::ReadOnly)
void trimTrackBack (track_proxy_t track, bool trimHoles, bool trimOutliers, bool trimMaterial, bool trimOtherNoneMeasurement)
 Helper function to trim track states from the back of a track.
template<TrackProxyConcept track_proxy_t>
requires (!track_proxy_t::ReadOnly)
void trimTrackFront (track_proxy_t track, bool trimHoles, bool trimOutliers, bool trimMaterial, bool trimOtherNoneMeasurement)
 Helper function to trim track states from the front of a track.
template<typename T>
std::uint64_t typeHash ()
 Hash for a type.
template<SmartPointerConcept T>
std::vector< std::add_pointer_t< std::add_const_t< typename T::element_type > > > unpackConstSmartPointers (const std::vector< T > &items)
 Helper function to unpack a vector of smart pointers (e.g.
template<typename T>
std::vector< const T * > unpackSmartPointers (const std::vector< std::shared_ptr< const T > > &items)
 Helper function to unpack a vector of shared_ptr into a vector of raw pointers (const version).
template<SmartPointerConcept T>
std::vector< std::add_pointer_t< typename T::element_type > > unpackSmartPointers (const std::vector< T > &items)
 Helper function to unpack a vector of shared_ptr into a vector of raw pointers.
template<std::size_t N>
requires (N > 0)
constexpr std::size_t vecIdxFromSymMat (const std::size_t i, const std::size_t k)
 Map the indices of the lower triangular part of a symmetric N x N matrix to an unrolled vector index.
template<typename L, typename A, typename B>
auto visit_measurement (const A &param, const B &cov, std::size_t dim, L &&lambda)
 Dispatch a lambda call on an overallocated parameter vector and covariance matrix, based on a runtime dimension value.
template<typename L, typename... Args>
auto visit_measurement (std::size_t dim, L &&lambda, Args &&... args)
 Dispatch a generic lambda on a measurement dimension.
template<typename external_space_point_t>
bool xyzCoordinateCheck (const Acts::SeedFinderConfig< external_space_point_t > &config, const external_space_point_t &sp, const double *spacePointPosition, double *outputCoordinates)
 Check the compatibility of space point coordinates in xyz assuming the Bottom-Middle direction with the strip meassument details.
template<typename... R>
auto zip (R &&...r)
 Function that allows to zip some ranges to be used in a range-based for loop.

Variables

constexpr auto AxisBound = AxisBoundaryTypeTag<AxisBoundaryType::Bound>{}
 Constant for bound boundary type axis.
constexpr auto AxisClosed = AxisBoundaryTypeTag<AxisBoundaryType::Closed>{}
 Constant for closed boundary type axis.
constexpr auto AxisOpen = AxisBoundaryTypeTag<AxisBoundaryType::Open>{}
 Convenience typedefs for AxisBoundaryTypeTag Constant for open boundary type axis.
static constexpr BoundSubspaceIndices kBoundSubspaceIndicesInvalid
 type alias for indices of bound track parameters subspace
static constexpr std::size_t kMeasurementSizeMax = eBoundSize
 Maximum size of measurement dimension supported.
static constexpr SeedIndex2 kSeedIndex2Invalid
 Sentinel value for an invalid / unset seed EDM related index.
static constexpr SpacePointIndex2 kSpacePointIndex2Invalid
 Sentinel value for an invalid / unset space point EDM related index.
static constexpr TrackIndexType kTrackIndexInvalid
 Sentinel value for an invalid / unset track EDM related index.
static constexpr float NoTime = std::numeric_limits<float>::quiet_NaN()
 Sentinel value for space points without timing information.
constexpr int PolygonDynamic = -1
 Tag to trigger specialization of a dynamic polygon.
static constexpr double 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.
constexpr Color s_defaultPortalColor {"#308c48"}
 Default color for portals.
constexpr Color s_defaultSurfaceColor {"#0000aa"}
 Default color for surfaces.
constexpr Color s_defaultVolumColor {"#ffaa00"}
 Default color for volumes.
static constexpr double s_epsilon = 3 * std::numeric_limits<double>::epsilon()
 Tolerance for being numerical equal for geometry building.
static constexpr IntersectionIndex s_maximumNumberOfIntersections = 2
 Maximum number of intersections that can be stored.
static const InfiniteBounds s_noBounds {}
 Static instance of InfiniteBounds for convenience.
static constexpr double s_onSurfaceTolerance = 1e-4
 Tolerance for being on Surface.
static const Transform3 s_planeXY = Transform3::Identity()
 XY plane transformation (identity).
static const Transform3 s_planeYZ
 YZ plane transformation.
static const Transform3 s_planeZX
 ZX plane transformation.
constexpr double s_transformEquivalentTolerance = 1e-9
 Tolerance for transform equivalence checks.
static ViewConfig s_viewFiltered = {.color = {255, 255, 0}}
 View configuration for filtered states.
static const ViewConfig s_viewGrid = {.color = {220, 0, 0}}
 View configuration for grid visualization.
static const ViewConfig s_viewLine = {.color = {0, 0, 220}}
 View configuration for line visualization.
static ViewConfig s_viewMeasurement = {.color = {255, 102, 0}}
 View configuration for measurements.
static ViewConfig s_viewParameter = {.color = {0, 0, 255}}
 View configuration for track parameters.
static const ViewConfig s_viewPassive = {.color = {240, 280, 0}}
 View configuration for passive surface visualization.
static const ViewConfig s_viewPortal = {.color = Color{"#308c48"}}
 View configuration for portal visualization.
static ViewConfig s_viewPredicted = {.color = {51, 204, 51}}
 View configuration for predicted states.
static const ViewConfig s_viewSensitive = {.color = {0, 180, 240}}
 View configuration for sensitive surface visualization.
static ViewConfig s_viewSmoothed = {.color = {0, 102, 25}}
 View configuration for smoothed states.
static const ViewConfig s_viewSurface = {.color = {170, 170, 170}}
 View configuration for surface visualization.
static const ViewConfig s_viewVolume = {.color = {220, 220, 0}}
 View configuration for volume visualization.
template<typename stepper_t>
constexpr bool SupportsBoundParameters_v
 Variable template for checking bound parameters support.
template<typename T>
constexpr TypeTag< T > Type
 Convenience variable for creating TypeTag instances.
constexpr Envelope zeroEnvelope = {0, 0}
 Zero envelope constant for no extension.

Detailed Description

The main namespace encompassing all ACTS code.

Note
This file is foreseen for the Geometry module to replace Extent

Typedef Documentation

◆ const_if_t

template<bool C, typename T>
using Acts::const_if_t = std::conditional_t<C, const T, T>

Type trait that adds const qualifier to a type based on a boolean condition.

Template Parameters
CBoolean condition determining whether to add const
TType to potentially make const

◆ ConstProxyAccessor

template<typename T>
using Acts::ConstProxyAccessor = ProxyAccessorBase<T, true>

Type alias for a const proxy accessor.

Provides read-only access to proxy data with const-qualified member functions

◆ EAxis

Type alias for equidistant axis with open boundary type.

Used for defining grid axes with equally spaced bins and open boundaries

◆ Envelope

using Acts::Envelope = std::array<double, 2>

Type alias for envelope values in different directions.

Stores the envelope values for both positive and negative directions

◆ FixedBoundSubspaceHelper

template<std::size_t SubspaceSize>
using Acts::FixedBoundSubspaceHelper
Initial value:
Helper class for fixed subspace operations.
Definition SubspaceHelpers.hpp:244

Helper type for fixed-size bound parameter subspaces.

Provides utilities for working with fixed-size subspaces of bound track parameters

◆ Grid2D

Type alias for a 2-dimensional grid.

Grid structure for storing values with two dimensions

◆ Grid3D

Type alias for a 3-dimensional grid.

Grid structure for storing values with three dimensions

◆ HashedString

using Acts::HashedString = std::uint32_t

Type alias for hashed string representation.

Represents a string as a compile-time hash value for efficient comparison

◆ LayerArray

A BinnedArray to a std::shared_ptr of a layer.

Layers are constructed with shared_ptr factories, hence the layer array is describes as:

◆ LayerPtr

typedef std::shared_ptr< const Layer > Acts::LayerPtr = std::shared_ptr<const Layer>

A std::shared_ptr to a Layer.

Type alias for a shared pointer to a layer.

◆ MaterialGrid2D

Initial value:
class for describing a regular multi-dimensional grid
Definition Grid.hpp:141

Type alias for a 2-dimensional material grid.

Grid structure for storing material parameters with two dimensions

◆ MaterialGrid3D

Initial value:

Type alias for a 3-dimensional material grid.

Grid structure for storing material parameters with three dimensions

◆ MaterialGridAxisData

using Acts::MaterialGridAxisData = std::tuple<double, double, std::size_t>

Type alias for the axis data in material grids.

Tuple containing the minimum value, maximum value, and number of bins for an axis

◆ MaterialSlabMatrix

Type alias for a matrix of material slabs.

Used to store a 2D collection of material slabs

◆ MaterialSlabVector

using Acts::MaterialSlabVector = std::vector<MaterialSlab>

Type alias for a vector of material slabs.

Used to store a collection of material slabs in sequence

◆ Matrix

template<unsigned int kRows, unsigned int kCols>
using Acts::Matrix

Fixed-size matrix type for NxM matrices.

Template Parameters
kRowsNumber of rows
kColsNumber of columns

◆ MaxMomentumReducerLoop

typedef detail::SingleComponentReducer< detail::MaxMomentumComponent > Acts::MaxMomentumReducerLoop
Initial value:
detail::SingleComponentReducer<detail::MaxMomentumComponent>

Type alias for loop reducer based on maximum momentum.

Reduces multiple loop iterations based on momentum criteria

◆ MaxWeightReducerLoop

typedef detail::SingleComponentReducer< detail::MaxWeightComponent > Acts::MaxWeightReducerLoop
Initial value:
detail::SingleComponentReducer<detail::MaxWeightComponent>

Type alias for loop reducer based on maximum weight.

Reduces multiple loop iterations based on weight criteria

◆ MultiEigenStepperLoop

template<typename extension_t = EigenStepperDefaultExtension, typename reducer_t = MaxWeightReducerLoop>
using Acts::MultiEigenStepperLoop
Initial value:
Stepper based on a single-component stepper, but can handle Multi-Component Tracks (e....
Definition MultiStepperLoop.hpp:133

Stepper based on the EigenStepper, but handles Multi-Component Tracks (e.g., for the GSF).

Internally, this only manages a vector of EigenStepper::States. This simplifies implementation, but has several drawbacks:

  • There are certain redundancies between the global State and the component states
  • The components do not share a single magnetic-field-cache
    Template Parameters
    extension_tSee EigenStepper for details
    component_reducer_tHow to map the multi-component state to a single component
    small_vector_sizeA size-hint how much memory should be allocated by the small vector

◆ MutableLayerPtr

typedef std::shared_ptr< Layer > Acts::MutableLayerPtr = std::shared_ptr<Layer>

Type alias for a mutable pointer to a layer.

Used for non-const access to layer objects in the geometry

◆ NavigationDelegate

Initial value:
Delegate<void(
Append-only helper to add candidates to a navigation stream.
Definition NavigationStream.hpp:156
Definition Delegate.hpp:31
This is the central definition of the Acts payload object regarding detector geometry status (e....
Definition GeometryContext.hpp:46
class for printing debug output
Definition Logger.hpp:696
Wrapper class for a navigation policy state stored in the state manager.
Definition INavigationPolicy.hpp:31
Struct that serves as the argument to the navigation delegate.
Definition NavigationDelegate.hpp:25

Central alias for the navigation delegate.

This type is owning to support (type-erased) navigation delegate chains (i.e. multiple policies).

◆ NextLayers

using Acts::NextLayers = std::pair<const Layer*, const Layer*>

Type alias for adjacent layer pointers.

Stores pointers to the next inner and outer layers in the detector

◆ ParamCovAccessor

Initial value:
std::function<std::pair<const BoundVector, const BoundMatrix>(
const SourceLink&)>

Type alias for accessing parameter covariance matrices.

Function type for retrieving covariance matrices from measurement parameters

◆ ProjectorBitset

using Acts::ProjectorBitset = std::uint64_t

Type alias for bitset representing parameter projections.

Used to store parameter projection information in a compact bit format

◆ ProxyAccessor

template<typename T>
using Acts::ProxyAccessor = ProxyAccessorBase<T, false>

Type alias for a mutable proxy accessor.

Provides mutable access to track state components through a proxy pattern

Template Parameters
TThe type of the component being accessed

◆ Range1D

template<typename Type, template< typename, std::size_t > typename Vector = std::array>
using Acts::Range1D = RangeXD<1, Type, Vector>

Type alias for a one-dimensional range.

Specialization of RangeXD for one-dimensional ranges

Template Parameters
TypeThe value type of the range
VectorThe container type template used to store the range bounds

◆ Ray3D

using Acts::Ray3D = Ray<double, 3>

Type alias for a 3D ray using double precision.

Specialization of Ray class for three-dimensional space using double precision floating-point values

◆ RecordedMaterialTrack

Initial value:
std::pair<std::pair<Acts::Vector3, Acts::Vector3>, RecordedMaterial>
Simple result struct to be returned It mainly acts as an internal state which is created for every pr...
Definition MaterialInteraction.hpp:89

And recorded material track.

  • this is start: position, start momentum and the Recorded material

◆ RecordedMaterialVolumePoint

Initial value:
std::vector<std::pair<Acts::MaterialSlab, std::vector<Acts::Vector3>>>

list of point used in the mapping of a volume

◆ RegularCylinderIndexGrid

Initial value:

Regular cylinder grid in phi and z.

◆ RegularCylinderIndexGridNavigationPolicy

Initial value:
A navigation policy that uses grid based navigation for indexed surfaces Navigate through a multilaye...
Definition IndexGridNavigationPolicy.hpp:45

Navigation policy for regular cylinder grids.

◆ RegularDiscIndexGrid

◆ RegularDiscIndexGridNavigationPolicy

Initial value:

Navigation policy for regular disc grids.

◆ RegularPlaneIndexGrid

◆ RegularPlaneIndexGridNavigationPolicy

Initial value:

Navigation policy for regular planar grids.

◆ RegularRingIndexGrid

◆ RegularRingIndexGridNavigationPolicy

Initial value:

Navigation policy for regular ring grids.

◆ SerializedSubspaceIndices

using Acts::SerializedSubspaceIndices = std::uint64_t

Type alias for serialized subspace indices.

Compact representation of subspace indices as a 64-bit unsigned integer

◆ SquareMatrix [1/3]

template<unsigned int kSize>
using Acts::SquareMatrix

Fixed-size square matrix type for NxN matrices.

Template Parameters
kSizeThe dimension of the square matrix

◆ SquareMatrix [2/3]

template<unsigned int kSize>
using Acts::SquareMatrix

Fixed-size square matrix type for NxN matrices.

Template Parameters
kSizeThe dimension of the square matrix

◆ SquareMatrix [3/3]

template<unsigned int kSize>
using Acts::SquareMatrix

Fixed-size square matrix type for NxN matrices.

Template Parameters
kSizeThe dimension of the square matrix

◆ SurfaceMatcher

Initial value:
std::function<bool(const GeometryContext& gctx, AxisDirection,
const Surface*, const Surface*)>
Abstract Base Class for tracking surfaces.
Definition Surface.hpp:53
AxisDirection
to specify a local axis direction
Definition AxisDefinitions.hpp:18

Function type for comparing two surfaces in a given geometry context and axis direction.

Parameters
gctxThe geometry context for the comparison
dirThe axis direction to consider
s1First surface to compare
s2Second surface to compare
Returns
True if the surfaces are considered equivalent for binning purposes

◆ SurfaceMaterialMaps

Initial value:
std::map<GeometryIdentifier, std::shared_ptr<const ISurfaceMaterial>>

Type alias for surface material maps indexed by geometry identifier.

◆ TrackingGeometryMaterial

Initial value:
std::pair<SurfaceMaterialMaps, VolumeMaterialMaps>

Type alias for tracking geometry material containing surface and volume maps.

◆ TrackingVolumeBoundaryPtr

Initial value:
std::shared_ptr<const BoundarySurfaceT<TrackingVolume>>

Shared pointer to a constant BoundarySurfaceT of a TrackingVolume.

◆ TrackingVolumeOrderPosition

A pair associating a tracking volume with its position vector.

Note
Used for ordering tracking volumes in a spatial array.

◆ TrackingVolumePtr

typedef std::shared_ptr< const TrackingVolume > Acts::TrackingVolumePtr = std::shared_ptr<const TrackingVolume>

A std::shared_ptr to a tracking volume.

Interface types of the Gen1 geometry model.

Note
This interface is being replaced, and is subject to removal

◆ TrackLinearizer

Initial value:
const BoundTrackParameters& params, double linPointTime,
const Surface& perigeeSurface, const GeometryContext& gctx,
const MagneticFieldContext& mctx,
Track parameters bound to a reference surface for a single track.
Definition BoundTrackParameters.hpp:36
Context object for lookup of magnetic field values.
Definition MagneticFieldContext.hpp:34
Acts::AnyBase< sizeof(char) *512 > Cache
Opaque cache type that can store arbitrary implementation specific cache data.
Definition MagneticFieldProvider.hpp:71

A delegate for linearizing a track at a given point in time and surface.

Note
Used for track fitting and vertexing.

◆ VariableBoundSubspaceHelper

Initial value:
Helper class for variable subspace operations.
Definition SubspaceHelpers.hpp:186

Helper type for variable-size bound parameter subspaces.

Provides utilities for working with variable-size subspaces of bound track parameters.

◆ Vector

template<unsigned int kSize>
using Acts::Vector

Fixed-size vector type for N-dimensional vectors.

Template Parameters
kSizeThe dimension of the vector

◆ VolumeMaterialMaps

Initial value:
std::map<GeometryIdentifier, std::shared_ptr<const IVolumeMaterial>>

Type alias for volume material maps indexed by geometry identifier.

Enumeration Type Documentation

◆ AlignmentIndices

enum Acts::AlignmentIndices : unsigned int

Components of alignment parameters vector.

To be used to access components by named indices instead of just 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 and are prefixed to avoid naming collisions.

◆ AxisBoundaryType

enum class Acts::AxisBoundaryType
strong

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

Enumerator
Open 

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.

◆ AxisDirection

enum class Acts::AxisDirection : int
strong

to specify a local axis direction

Enumerator
AxisX 

AxisX, AxisY, AxisZ are the cartesian directions in the local frame.

AxisR 

AxisR is a radial direction.

AxisPhi 

AxisPhi is the azimuthal direction.

AxisRPhi 

AxisRPhi is the radial-azimuthal direction.

AxisTheta 

AxisTheta is the polar angle direction.

AxisEta 

AxisEta is the pseudorapidity direction.

AxisMag 

AxisMag is the magnitude of the vector.

◆ AxisType

enum class Acts::AxisType
strong

Enum which determines the binning type of the axis.

Enumerator
Equidistant 

An axis where all bins have the same size.

Variable 

An axis where bins can have different sizes.

◆ BinningType

, BinningOption & BinningAccess

  • BinningType:

    Enumeration to qualify the binning type for the use of the LayerArrayCreator and the TrackingVolumeArrayCreator

    • BinningOption: open: [0,max] closed: 0 -> nextbin -> max -> 0
    • AxisDirection necessary access to global positions

◆ BoundarySurfaceFace

Enum to describe the position of the BoundarySurface respectively to the frame orientation of the volume, this is mainly meant for code readability.

The different numeration sequences can be found in the documentation of the actual VolumeBounds implementations.

The order of faces is chosen to follow - as much as possible - a circular structure.

◆ BoundIndices

enum Acts::BoundIndices : unsigned int

Components of a bound track parameters vector.

To be used to access components by named indices instead of just 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 and are prefixed to avoid naming collisions.

◆ CoordinateIndices

enum Acts::CoordinateIndices : unsigned int

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).

◆ FreeIndices

enum Acts::FreeIndices : unsigned int

Components of a free track parameters vector.

To be used to access components by named indices instead of just 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 and are prefixed to avoid naming collisions.

◆ LinIndices

enum Acts::LinIndices : unsigned int

Enum to access the components of a track parameter vector.

Here, we parametrize the track via a 4D point on the track, the momentum angles of the particle at that point, and q/p or 1/p.

Note
It would make sense to rename these parameters if they are used outside of track linearization.
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 and are prefixed to avoid naming collisions.

◆ MaterialUpdateMode

enum class Acts::MaterialUpdateMode : std::uint8_t
strong

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

  • NoUpdate : no update
  • PreUpdate : update on approach of a surface
  • PostUpdate : update when leaving a surface
  • FullUpdate : update when passing a surface

◆ NoiseUpdateMode

enum class Acts::NoiseUpdateMode : int
strong

to tell how to deal with noise term in covariance transport

  • removeNoise: subtract noise term
  • addNoise: add noise term

◆ PropagatorStage

enum class Acts::PropagatorStage
strong

Different stages during propagation.

Enumerator
invalid 

Invalid stage.

prePropagation 

Before the propagation.

postPropagation 

After the propagation.

preStep 

Before a step.

postStep 

After a step.

◆ SeedColumns

enum class Acts::SeedColumns : std::uint32_t
strong

Enumeration of available columns for space point data storage.

Enumerator
None 

No columns.

SpacePointIndices 

Indices of space points associated with the seed.

Quality 

Quality of the seed.

VertexZ 

Z coordinate of the vertex associated with.

All 

All columns.

◆ SpacePointColumns

enum class Acts::SpacePointColumns : std::uint32_t
strong

Enumeration of available columns for space point data storage.

Enumerator
None 

No columns.

SourceLinks 

Source link information.

X coordinate.

Y coordinate.

Z coordinate.

Radial coordinate.

Phi 

Azimuthal angle.

Time 

Time information.

VarianceZ 

Variance in Z direction.

VarianceR 

Variance in radial direction.

TopStripVector 

Vector for the top strip.

BottomStripVector 

Vector for the bottom strip.

StripCenterDistance 

Distance to the strip center.

TopStripCenter 

Center of the top strip.

CopyFromIndex 

Copy from index.

PackedXY 

X and Y coordinates.

PackedZR 

Z and R coordinates.

PackedXYZ 

X, Y, and Z coordinates.

PackedXYZR 

X, Y, Z, and R coordinates.

PackedVarianceZR 

Variance in Z and R directions.

Strip 

All strip-related columns.

All 

All columns.

◆ TrackExtrapolationStrategy

Strategy for track extrapolation to target surface.

Enumerator
first 

Use the first track state to reach target surface.

last 

Use the last track state to reach target surface.

firstOrLast 

Use the first or last track state to reach target surface depending on the distance.

◆ TrackStateFlag

enum class Acts::TrackStateFlag
strong

Enumeration of track state flags.

The values define the bit positions in the underlying storage. The user may define custom flags starting from bit position NumFlags but it is recommended to start from bit position 16 or in reverse from 63 to avoid conflicts with future additions.

Enumerator
HasMeasurement 

Indicates that the track state has an associated measurement.

Note that an outlier also has a measurement.

HasParameters 

Indicates that the track state has associated parameters.

IsOutlier 

Indicates that the track state has an outlier measurement.

IsHole 

Indicates that the track state has a hole (missing measurement).

HasMaterial 

Indicates that the track state has associated material.

IsSharedHit 

Indicates that the track state has a shared hit measurement.

IsSplitHit 

Indicates that the track state has a split hit measurement.

HasNoExpectedHit 

Indicates that the track state has no expected hit.

NumFlags 

Number of defined flags.

◆ TrackStatePropMask

enum struct Acts::TrackStatePropMask : std::uint8_t
strong

Collection of bit masks to enable steering which components of a track state should be initialized, and which should be left invalid.

These mask values can be combined using binary operators, so (TrackStatePropMask::Predicted | TrackStatePropMask::Jacobian) will instruct allocating storage for both predicted parameters (including covariance) and a jacobian. The enum is used as a strong type wrapper around the bits to prevent autoconversion from integer

◆ VolumeAttachmentStrategy

enum class Acts::VolumeAttachmentStrategy
strong

The attachment strategy defines how the volumes are attached Attachment always happens pair-wise.

Enumerator
First 

Given two volumes, the left one, i.e.

the one with the lower local x, y, or z value is extended

Second 

Given two volumes, the right one, i.e.

the one with the higher local x, y, or z value is extended

Midpoint 

Given two volumes, the midpoint between the two volumes is found.

Gap 

A gap volume is created to fit between the two volumes.

◆ VolumeResizeStrategy

enum class Acts::VolumeResizeStrategy
strong

The resize strategy defines how the volumes are resized.

Enumerator
Expand 

Extend the volume connected to the respective edge to fit the new bounds.

Gap 

Create a gap volume at the respective edge to fit the new bounds.

◆ WrappingCondition

Volume wrapping conditions for cylinder volume building.

Enumerator
Undefined 

inconsistency detected

Attaching 

attach the volumes

Inserting 

insert the new volume

Wrapping 

wrap the new volume around

CentralInserting 

insert the new one into the center

CentralWrapping 

wrap the new central volume around

NoWrapping 

no inner volume present - no wrapping needed

Function Documentation

◆ abs()

template<typename T>
T Acts::abs ( const T n)
constexpr

Returns the absolute of a number.

Note
Can be removed for C++23
Parameters
nThe number to take absolute value of
Returns
The absolute value of the input

◆ addBoundParameters()

BoundVector Acts::addBoundParameters ( const BoundVector & lhs,
const BoundVector & rhs )

Add bound parameters and take care of angle periodicity for phi and theta.

This is intended for small differences only i.e. KF updates.

Parameters
lhsThe left hand side bound parameters
rhsThe right hand side bound parameters
Returns
The sum of the bound parameters

◆ adjustBinUtility() [1/9]

BinUtility Acts::adjustBinUtility ( const BinUtility & bu,
const CuboidVolumeBounds & cBounds,
const Transform3 & transform )

adjust the BinUtility bu to the dimensions of cuboid volume bounds

Parameters
buBinUtility at source
cBoundsthe Cuboid volume bounds to adjust to
transformTransform for the adjusted BinUtility
Returns
new updated BinUtiltiy

◆ adjustBinUtility() [2/9]

BinUtility Acts::adjustBinUtility ( const BinUtility & bu,
const CutoutCylinderVolumeBounds & cBounds,
const Transform3 & transform )

adjust the BinUtility bu to the dimensions of cutout cylinder volume bounds

Parameters
buBinUtility at source
cBoundsthe Cutout Cylinder volume bounds to adjust to
transformTransform for the adjusted BinUtility
Returns
new updated BinUtiltiy

◆ adjustBinUtility() [3/9]

BinUtility Acts::adjustBinUtility ( const BinUtility & bu,
const CylinderBounds & cBounds,
const Transform3 & transform )
static

adjust the BinUtility bu to the dimensions of cylinder bounds

Parameters
buBinUtility at source
cBoundsthe Cylinder bounds to adjust to
transformTransform for the adjusted BinUtility
Returns
new updated BinUtiltiy

◆ adjustBinUtility() [4/9]

BinUtility Acts::adjustBinUtility ( const BinUtility & bu,
const CylinderVolumeBounds & cBounds,
const Transform3 & transform )

adjust the BinUtility bu to the dimensions of cylinder volume bounds

Parameters
buBinUtility at source
cBoundsthe Cylinder volume bounds to adjust to
transformTransform for the adjusted BinUtility
Returns
new updated BinUtiltiy

◆ adjustBinUtility() [5/9]

BinUtility Acts::adjustBinUtility ( const BinUtility & bu,
const RadialBounds & rBounds,
const Transform3 & transform )
static

adjust the BinUtility bu to the dimensions of radial bounds

Parameters
buBinUtility at source
rBoundsthe Radial bounds to adjust to
transformTransform for the adjusted BinUtility
Returns
new updated BinUtiltiy

◆ adjustBinUtility() [6/9]

BinUtility Acts::adjustBinUtility ( const BinUtility & bu,
const RectangleBounds & pBounds,
const Transform3 & transform )
static

adjust the BinUtility bu to the dimensions of plane bounds

Parameters
buBinUtility at source
pBoundsthe Rectangle bounds to adjust to
transformTransform for the adjusted BinUtility
Returns
new updated BinUtiltiy

◆ adjustBinUtility() [7/9]

BinUtility Acts::adjustBinUtility ( const BinUtility & bu,
const Surface & surface,
const GeometryContext & gctx )
static

adjust the BinUtility bu to a surface

Parameters
buBinUtility at source
surfaceSurface to which the adjustment is being done
gctxGeometry context to get the surfaces transform
Returns
new updated BinUtiltiy

◆ adjustBinUtility() [8/9]

BinUtility Acts::adjustBinUtility ( const BinUtility & bu,
const TrapezoidBounds & pBounds,
const Transform3 & transform )
static

adjust the BinUtility bu to the dimensions of plane bounds

Parameters
buBinUtility at source
pBoundsthe Trapezoid bounds to adjust to
transformTransform for the adjusted BinUtility
Returns
new updated BinUtiltiy

◆ adjustBinUtility() [9/9]

BinUtility Acts::adjustBinUtility ( const GeometryContext & gctx,
const BinUtility & bu,
const Volume & volume )

adjust the BinUtility bu to a volume

Parameters
gctxThe current geometry context object, e.g. alignment
buBinUtility at source
volumeVolume to which the adjustment is being done
Returns
new updated BinUtiltiy

◆ allAxisDirections()

const std::vector< AxisDirection > & Acts::allAxisDirections ( )

Get all possible axis directions.

Returns
a vector of all possible axis directions

◆ AnyGridConstView()

template<typename T, typename... Axes>
Acts::AnyGridConstView ( const Grid< T, Axes... > & grid) ->AnyGridConstView< T >

Deduction guide for AnyGridConstView from const Grid.

Template Parameters
TType of values stored in the grid
AxesParameter pack of axis types defining the grid
Parameters
gridThe const grid to create a view for

◆ AnyGridView()

template<typename T, typename... Axes>
Acts::AnyGridView ( Grid< T, Axes... > & grid) ->AnyGridView< T >

Deduction guide for AnyGridView from Grid.

Template Parameters
TType of values stored in the grid
AxesParameter pack of axis types defining the grid
Parameters
gridThe grid to create a view for

◆ applyReferenceExpansion()

template<typename grid_type>
void Acts::applyReferenceExpansion ( std::vector< typename grid_type::point_t > & gridQueries,
const std::vector< double > & referenceExpansion )

Run the reference expansion.

Template Parameters
grid_typethe type of the grid
Parameters
gridQueriesthe grid queries to be expanded
referenceExpansionthe reference expansion values

◆ approximateHighlandScattering()

float Acts::approximateHighlandScattering ( float xOverX0)

Approximate the core width of the projected planar scattering distribution with highland's formula.

Parameters
xOverX0The thickness of the material in radiation lengths
Returns
The approximate scattering angle times momentum in radians*GeV

◆ Axis() [1/4]

template<AxisBoundaryType bdt>
Acts::Axis ( AxisBoundaryTypeTag< bdt > ,
double min,
double max,
std::size_t bins )->Axis< AxisType::Equidistant, bdt >

Deduction guide for equidistant axis with specified boundary type.

Parameters
minMinimum value
maxMaximum value
binsNumber of bins

◆ Axis() [2/4]

template<AxisBoundaryType bdt>
Acts::Axis ( AxisBoundaryTypeTag< bdt > ,
std::vector< double > bins )->Axis< AxisType::Variable, bdt >

Deduction guide for variable axis with specified boundary type.

Parameters
binsVector of bin edges

◆ Axis() [3/4]

Acts::Axis ( double min,
double max,
std::size_t bins )->Axis< AxisType::Equidistant, AxisBoundaryType::Open >

Deduction guide for equidistant axis with open boundaries.

Parameters
minMinimum value
maxMaximum value
binsNumber of bins

◆ Axis() [4/4]

Acts::Axis ( std::vector< double > bins) ->Axis< AxisType::Variable, AxisBoundaryType::Open >

Deduction guide for variable axis with open boundaries.

Parameters
binsVector of bin edges

◆ axisDirectionFromName()

AxisDirection Acts::axisDirectionFromName ( const std::string & name)

Get an axis direction from its string name.

Parameters
nameis the name of the axis direction
Returns
the axis direction

◆ axisDirectionName()

const std::string & Acts::axisDirectionName ( AxisDirection aDir)

Get the name of a binning value as a string.

Parameters
aDiris the binning value
Returns
the name of the binning value

◆ binomial()

template<std::unsigned_integral T>
T Acts::binomial ( const T n,
const T k )
constexpr

Calculate the binomial coefficient n n!

= -----— k k!(n-k)!

Parameters
nUpper value in binomial coefficient
kLower value in binomial coefficient
Returns
Binomial coefficient n choose k

◆ binSequence()

std::vector< std::size_t > Acts::binSequence ( std::array< std::size_t, 2u > minMaxBins,
std::size_t expand,
std::size_t nBins,
Acts::AxisBoundaryType type )

Helper method to generate completely populated bin sequences that respect the boundary type of the axis.

Parameters
minMaxBinsestimated bin range (aka binning boundary box)
expandthe parameter to expand the view (extra window)
nBinsthe maximum number of bins on this axis
typethe boundary type of the axis (for correct bin closure)
Note
for closed binning a span over half the bins flips direction
Returns
a vector of bins to be filled

◆ bitsetToMatrix()

template<typename MatrixType>
MatrixType Acts::bitsetToMatrix ( const std::bitset< MatrixType::RowsAtCompileTime *MatrixType::ColsAtCompileTime > bs)

Convert a bitset to a matrix of integers, with each element set to the bit value.

Note
How the bits are assigned to matrix elements depends on the storage type of the matrix being converted (row-major or col-major)
Template Parameters
MatrixTypeMatrix type that is produced
Parameters
bsThe bitset to convert
Returns
A matrix with the integer values of the bits from bs

◆ blockedMult()

template<typename A, typename B>
Matrix< A::RowsAtCompileTime, B::ColsAtCompileTime > Acts::blockedMult ( const A & a,
const B & b )

Perform a blocked matrix multiplication, avoiding Eigen GEMM methods.

Template Parameters
AThe type of the first matrix, which should be MxN
BThe type of the second matrix, which should be NxP
Parameters
[in]aAn MxN matrix of type A
[in]bAn NxP matrix of type P
Returns
The product ab

◆ calculateFilteredChi2()

template<TrackStateProxyConcept track_state_proxy_t>
double Acts::calculateFilteredChi2 ( track_state_proxy_t trackState)

Helper function to calculate the filtered chi2.

Template Parameters
track_state_proxy_tthe track state proxy type
Parameters
trackStatethe track state to calculate the chi2 from
Returns
the chi2

◆ calculateFilteredResidual()

template<std::size_t nMeasurementDim, TrackStateProxyConcept track_state_proxy_t>
std::pair< Vector< nMeasurementDim >, SquareMatrix< nMeasurementDim > > Acts::calculateFilteredResidual ( track_state_proxy_t trackState)

Helper function to calculate the filtered residual and its covariance.

Template Parameters
nMeasurementDimthe dimension of the measurement
track_state_proxy_tthe track state proxy type
Parameters
trackStatethe track state to calculate the residual from
Returns
a pair of the residual and its covariance

◆ calculateNucleusMass()

float Acts::calculateNucleusMass ( PdgParticle pdg)

Calculate the mass of a nucleus using Bethe-Weizsacker formula Parameters obtained from https://www.actaphys.uj.edu.pl/index_n.php?I=R&V=37&N=6#1833.

Parameters
pdgPDG particle number for the nucleus
Returns
Mass in native units

◆ calculatePredictedChi2()

template<TrackStateProxyConcept track_state_proxy_t>
double Acts::calculatePredictedChi2 ( track_state_proxy_t trackState)

Helper function to calculate the predicted chi2.

Template Parameters
track_state_proxy_tthe track state proxy type
Parameters
trackStatethe track state to calculate the chi2 from
Returns
the chi2

◆ calculatePredictedResidual()

template<std::size_t nMeasurementDim, TrackStateProxyConcept track_state_proxy_t>
std::pair< Vector< nMeasurementDim >, SquareMatrix< nMeasurementDim > > Acts::calculatePredictedResidual ( track_state_proxy_t trackState)

Helper function to calculate the predicted residual and its covariance.

Template Parameters
nMeasurementDimthe dimension of the measurement
track_state_proxy_tthe track state proxy type
Parameters
trackStatethe track state to calculate the residual from
Returns
a pair of the residual and its covariance

◆ calculateSmoothedChi2()

template<TrackStateProxyConcept track_state_proxy_t>
double Acts::calculateSmoothedChi2 ( track_state_proxy_t trackState)

Helper function to calculate the smoothed chi2.

Template Parameters
track_state_proxy_tthe track state proxy type
Parameters
trackStatethe track state to calculate the chi2 from
Returns
the chi2

◆ calculateSmoothedResidual()

template<std::size_t nMeasurementDim, TrackStateProxyConcept track_state_proxy_t>
std::pair< Vector< nMeasurementDim >, SquareMatrix< nMeasurementDim > > Acts::calculateSmoothedResidual ( track_state_proxy_t trackState)

Helper function to calculate the smoothed residual and its covariance.

Template Parameters
nMeasurementDimthe dimension of the measurement
track_state_proxy_tthe track state proxy type
Parameters
trackStatethe track state to calculate the residual from
Returns
a pair of the residual and its covariance

◆ calculateTrackQuantities()

template<TrackProxyConcept track_proxy_t>
requires (!track_proxy_t::ReadOnly)
void Acts::calculateTrackQuantities ( track_proxy_t track)

Helper function to calculate a number of track level quantities and store them on the track itself.

Template Parameters
track_proxy_tThe track proxy type
Parameters
trackA mutable track proxy to operate on

◆ calculateUnbiasedParametersCovariance()

template<TrackStateProxyConcept track_state_proxy_t>
std::pair< BoundVector, BoundMatrix > Acts::calculateUnbiasedParametersCovariance ( track_state_proxy_t trackState)

Helper function to calculate the unbiased track parameters and their covariance (i.e.

fitted track parameters with this measurement removed) using Eq.(12a)-Eq.(12c) of NIMA 262, 444 (1987)

Template Parameters
track_state_proxy_tthe track state proxy type
Parameters
trackStatethe track state to calculate the unbiased parameters from
Returns
a pair of the unbiased parameters and their covariance

◆ cathetusSquare()

template<typename T, typename... Args>
auto Acts::cathetusSquare ( T hypotenuse,
Args... args )
constexpr

Calculates the squared cathetus of arguments, i.e.

the difference between the square of the hypotenuse and the square of the given arguments.

Parameters
hypotenuseThe hypotenuse value
argsVariable number of arguments to calculate the cathetus for
Returns
Difference between the square of the hypotenuse and the square of the given arguments. Returns NaN for floating point types if the hypotenuse is smaller than the cathetus.
Exceptions
std::domain_errorif hypotenuse is smaller than the cathetus for integral types

◆ cathetusSquareUnchecked()

template<typename T, typename... Args>
auto Acts::cathetusSquareUnchecked ( T hypotenuse,
Args... args )
constexpr

Calculates the squared cathetus of arguments, i.e.

the difference between the square of the hypotenuse and the square of the given arguments without checking for domain errors.

Parameters
hypotenuseThe hypotenuse value
argsVariable number of arguments to calculate the cathetus for
Returns
Difference between the square of the hypotenuse and the square of the given arguments

◆ checkSubspaceIndices()

template<std::ranges::sized_range index_range_t>
bool Acts::checkSubspaceIndices ( const index_range_t & indexRange,
std::size_t fullSize,
std::size_t subspaceSize )
static

Check subspace indices for consistency.

Indices must be unique and within the full size of the subspace

Template Parameters
index_range_tthe type of the container of indices
Parameters
indexRangethe range of indices
fullSizethe full size of the subspace
subspaceSizethe size of the subspace
Returns
true if the indices are consistent

◆ clampValue()

template<typename T, typename U>
T Acts::clampValue ( U value)

Clamp a numeric value to another type, respecting range of the target type.

Template Parameters
Tthe target type
Uthe source type
Parameters
valuethe value to clamp
Returns
the clamped value

◆ computeEnergyLossBethe()

float Acts::computeEnergyLossBethe ( const MaterialSlab & slab,
float m,
float qOverP,
float absQ )

Compute the mean energy loss due to ionisation and excitation.

Parameters
slabThe traversed material and its properties
mParticle mass
qOverPParticle charge divided by absolute momentum
absQAbsolute particle charge

This computes the mean energy loss -dE(x) through a material with the given properties, i.e. it computes

-dE(x) = -dE/dx * x

where -dE/dx is given by the Bethe formula. The computations are valid for intermediate particle energies.

Returns
Mean energy loss through the material slab

◆ computeEnergyLossLandau()

float Acts::computeEnergyLossLandau ( const MaterialSlab & slab,
float m,
float qOverP,
float absQ )

Compute the most probable energy loss due to ionisation and excitation.

Compute the mean energy loss due to ionisation and excitation.

Parameters
slabThe traversed material and its properties
mParticle mass
qOverPParticle charge divided by absolute momentum
absQAbsolute particle charge

This computes the mean energy loss -dE(x) through a material with the given properties, i.e. it computes

-dE(x) = -dE/dx * x

where -dE/dx is given by the Bethe formula. The computations are valid for intermediate particle energies.

Returns
Mean energy loss through the material slab

This computes the most probable energy loss -dE(x) through a material of the given properties and thickness as described by the mode of the Landau-Vavilov-Bichsel distribution. The computations are valid for intermediate particle energies.

Returns
Most probable energy loss through the material slab

◆ computeEnergyLossLandauFwhm()

float Acts::computeEnergyLossLandauFwhm ( const MaterialSlab & slab,
float m,
float qOverP,
float absQ )

Compute the full with half maximum of landau energy loss distribution.

Parameters
slabThe traversed material and its properties
mParticle mass
qOverPParticle charge divided by absolute momentum
absQAbsolute particle charge
Returns
Full width half maximum of the Landau distribution

◆ computeEnergyLossLandauSigma()

float Acts::computeEnergyLossLandauSigma ( const MaterialSlab & slab,
float m,
float qOverP,
float absQ )

Compute the Gaussian-equivalent sigma for the ionisation loss fluctuations.

See also
computeEnergyLossBethe for parameters description

This is the sigma parameter of a Gaussian distribution with the same full-width-half-maximum as the Landau-Vavilov-Bichsel distribution. The computations are valid for intermediate particle energies.

Parameters
slabThe traversed material and its properties
mParticle mass
qOverPParticle charge divided by absolute momentum
absQAbsolute particle charge
Returns
Gaussian-equivalent sigma for energy loss fluctuations

◆ computeEnergyLossLandauSigmaQOverP()

float Acts::computeEnergyLossLandauSigmaQOverP ( const MaterialSlab & slab,
float m,
float qOverP,
float absQ )

Compute q/p Gaussian-equivalent sigma due to ionisation loss fluctuations.

Compute the mean energy loss due to ionisation and excitation.

Parameters
slabThe traversed material and its properties
mParticle mass
qOverPParticle charge divided by absolute momentum
absQAbsolute particle charge

This computes the mean energy loss -dE(x) through a material with the given properties, i.e. it computes

-dE(x) = -dE/dx * x

where -dE/dx is given by the Bethe formula. The computations are valid for intermediate particle energies.

Returns
Mean energy loss through the material slab

◆ computeEnergyLossMean()

float Acts::computeEnergyLossMean ( const MaterialSlab & slab,
PdgParticle absPdg,
float m,
float qOverP,
float absQ )

Compute the combined mean energy loss.

Parameters
slabThe traversed material and its properties
absPdgAbsolute particle type PDG identifier
mParticle mass
qOverPParticle charge divided by absolute momentum
absQAbsolute particle charge

This computes the combined mean energy loss -dE(x) including ionisation and radiative effects. The computations are valid over a wide range of particle energies.

Returns
Combined mean energy loss through the material slab

◆ computeEnergyLossMode()

float Acts::computeEnergyLossMode ( const MaterialSlab & slab,
PdgParticle absPdg,
float m,
float qOverP,
float absQ )

Compute the combined most probably energy loss.

Compute the combined mean energy loss.

Parameters
slabThe traversed material and its properties
absPdgAbsolute particle type PDG identifier
mParticle mass
qOverPParticle charge divided by absolute momentum
absQAbsolute particle charge

This computes the combined mean energy loss -dE(x) including ionisation and radiative effects. The computations are valid over a wide range of particle energies.

Returns
Combined mean energy loss through the material slab
Combined most probable energy loss through the material slab

◆ computeEnergyLossRadiative()

float Acts::computeEnergyLossRadiative ( const MaterialSlab & slab,
PdgParticle absPdg,
float m,
float qOverP,
float absQ )

Compute the mean energy loss due to radiative effects at high energies.

Parameters
slabThe traversed material and its properties
absPdgAbsolute particle type PDG identifier
mParticle mass
qOverPParticle charge divided by absolute momentum
absQAbsolute particle charge

This computes the mean energy loss -dE(x) using an approximative formula. Bremsstrahlung is always included; direct e+e- pair production and photo-nuclear interactions only for muons.

Returns
Mean radiative energy loss through the material slab

◆ computeMultipleScatteringTheta0()

float Acts::computeMultipleScatteringTheta0 ( const MaterialSlab & slab,
PdgParticle absPdg,
float m,
float qOverP,
float absQ )

Compute the core width of the projected planar scattering distribution.

Parameters
slabThe traversed material and its properties
absPdgAbsolute particle type PDG identifier
mParticle mass
qOverPParticle charge divided by absolute momentum
absQAbsolute particle charge
Returns
Core width of the scattering distribution

◆ copySign()

template<typename out_t, typename sign_t>
out_t Acts::copySign ( const out_t & copyTo,
const sign_t & sign )
constexpr

Copies the sign of a signed variable onto the copyTo input object.

Return type & magnitude remain unaffected by this method which allows usage for Vectors & other types providing the - operator. By convention, the zero is assigned to a positive sign.

Parameters
copyToVariable to which the sign is copied to.
signVariable from which the sign is taken.
Returns
The copyTo variable with the sign of the sign parameter

◆ createCurvilinearUnitU()

template<typename InputVector>
auto Acts::createCurvilinearUnitU ( const Eigen::MatrixBase< InputVector > & direction)

Construct the first curvilinear unit vector U for the given direction.

Parameters
directionis the input direction vector
Returns
a normalized vector in the x-y plane orthogonal to the direction.

The special case of the direction vector pointing along the z-axis is handled by forcing the unit vector to along the x-axis.

◆ createCurvilinearUnitVectors()

template<typename InputVector>
auto Acts::createCurvilinearUnitVectors ( const Eigen::MatrixBase< InputVector > & direction)

Construct the curvilinear unit vectors U and V for the given direction.

Parameters
directionis the input direction vector
Returns
normalized unit vectors U and V orthogonal to the direction.

With T the normalized input direction, the three vectors U, V, and T form an orthonormal basis set, i.e. they satisfy

U x V = T
V x T = U
T x U = V

with the additional condition that U is located in the global x-y plane.

◆ createGrid() [1/2]

Grid2D Acts::createGrid ( MaterialGridAxisData gridAxis1,
MaterialGridAxisData gridAxis2 )

Helper method that creates the cache grid for the mapping.

This grid allows the collection of material at a the anchor points.

Parameters
[in]gridAxis1Axis data
[in]gridAxis2Axis data
Note
The data of the axes is given in the std::array as {minimum value, maximum value, number of bins}
Returns
The grid

◆ createGrid() [2/2]

Grid3D Acts::createGrid ( MaterialGridAxisData gridAxis1,
MaterialGridAxisData gridAxis2,
MaterialGridAxisData gridAxis3 )

Helper method that creates the cache grid for the mapping.

This grid allows the collection of material at a the anchor points.

Parameters
[in]gridAxis1Axis data
[in]gridAxis2Axis data
[in]gridAxis3Axis data
Note
The data of the axes is given in the std::array as {minimum value, maximum value, number of bins}
Returns
The grid

◆ createGrid2D()

Grid2D Acts::createGrid2D ( const BinUtility & bins,
std::function< Acts::Vector2(Acts::Vector3)> & transfoGlobalToLocal )

Create a 2DGrid using a BinUtility.

Also determine the corresponding global to local transform and grid mapping function

Parameters
[in]binsBinUtility of the volume to be mapped
[in]transfoGlobalToLocalGlobal to local transform to be updated.
Returns
the 3D grid

◆ createGrid3D()

Grid3D Acts::createGrid3D ( const BinUtility & bins,
std::function< Acts::Vector3(Acts::Vector3)> & transfoGlobalToLocal )

Create a 3DGrid using a BinUtility.

Also determine the corresponding global to local transform and grid mapping function

Parameters
[in]binsBinUtility of the volume to be mapped
[in]transfoGlobalToLocalGlobal to local transform to be updated.
Returns
the 3D grid

◆ deriveEnergyLossBetheQOverP()

float Acts::deriveEnergyLossBetheQOverP ( const MaterialSlab & slab,
float m,
float qOverP,
float absQ )

Derivative of the Bethe energy loss with respect to q/p.

Compute the mean energy loss due to ionisation and excitation.

Parameters
slabThe traversed material and its properties
mParticle mass
qOverPParticle charge divided by absolute momentum
absQAbsolute particle charge

This computes the mean energy loss -dE(x) through a material with the given properties, i.e. it computes

-dE(x) = -dE/dx * x

where -dE/dx is given by the Bethe formula. The computations are valid for intermediate particle energies.

Returns
Mean energy loss through the material slab

◆ deriveEnergyLossLandauQOverP()

float Acts::deriveEnergyLossLandauQOverP ( const MaterialSlab & slab,
float m,
float qOverP,
float absQ )

Derivative of the most probable ionisation energy loss with respect to q/p.

Compute the mean energy loss due to ionisation and excitation.

Parameters
slabThe traversed material and its properties
mParticle mass
qOverPParticle charge divided by absolute momentum
absQAbsolute particle charge

This computes the mean energy loss -dE(x) through a material with the given properties, i.e. it computes

-dE(x) = -dE/dx * x

where -dE/dx is given by the Bethe formula. The computations are valid for intermediate particle energies.

Returns
Mean energy loss through the material slab

◆ deriveEnergyLossMeanQOverP()

float Acts::deriveEnergyLossMeanQOverP ( const MaterialSlab & slab,
PdgParticle absPdg,
float m,
float qOverP,
float absQ )

Derivative of the combined mean energy loss with respect to q/p.

Compute the combined mean energy loss.

Parameters
slabThe traversed material and its properties
absPdgAbsolute particle type PDG identifier
mParticle mass
qOverPParticle charge divided by absolute momentum
absQAbsolute particle charge

This computes the combined mean energy loss -dE(x) including ionisation and radiative effects. The computations are valid over a wide range of particle energies.

Returns
Combined mean energy loss through the material slab
Derivative of combined mean energy loss with respect to q/p

◆ deriveEnergyLossModeQOverP()

float Acts::deriveEnergyLossModeQOverP ( const MaterialSlab & slab,
PdgParticle absPdg,
float m,
float qOverP,
float absQ )

Derivative of the combined most probable energy loss with respect to q/p.

Compute the combined mean energy loss.

Parameters
slabThe traversed material and its properties
absPdgAbsolute particle type PDG identifier
mParticle mass
qOverPParticle charge divided by absolute momentum
absQAbsolute particle charge

This computes the combined mean energy loss -dE(x) including ionisation and radiative effects. The computations are valid over a wide range of particle energies.

Returns
Combined mean energy loss through the material slab
Derivative of combined most probable energy loss with respect to q/p

◆ deriveEnergyLossRadiativeQOverP()

float Acts::deriveEnergyLossRadiativeQOverP ( const MaterialSlab & slab,
PdgParticle absPdg,
float m,
float qOverP,
float absQ )

Derivative of the mean radiative energy loss with respect to q/p.

Compute the mean energy loss due to radiative effects at high energies.

Parameters
slabThe traversed material and its properties
absPdgAbsolute particle type PDG identifier
mParticle mass
qOverPParticle charge divided by absolute momentum
absQAbsolute particle charge

This computes the mean energy loss -dE(x) using an approximative formula. Bremsstrahlung is always included; direct e+e- pair production and photo-nuclear interactions only for muons.

Returns
Mean radiative energy loss through the material slab
Derivative of radiative energy loss with respect to q/p

◆ deserializeSubspaceIndices()

template<std::size_t FullSize>
requires (FullSize <= 8)
SubspaceIndices< FullSize > Acts::deserializeSubspaceIndices ( SerializedSubspaceIndices serialized)
static

Deserialize subspace indices from a single 64 bit integer.

Template Parameters
FullSizethe full size of the subspace
Parameters
serializedthe serialized subspace indices
Returns
the subspace indices

◆ enumerate()

template<typename container_type, typename index_type = typename std::decay_t<container_type>::size_type, typename container_type_iter = decltype(std::begin(std::declval<container_type>())), typename = decltype(std::end(std::declval<container_type>()))>
auto Acts::enumerate ( container_type && iterable)
constexpr

Helper utility to allow indexed enumeration with structured binding.

Usage:

for (auto [ i, value ] = enumerate(container) ) { ... };

with 'container' any stl-like container

Parameters
iterableContainer to enumerate
Returns
Enumerable wrapper with index and value pairs

◆ expand()

template<typename queries_type, typename expansion_type, std::size_t kDIM>
void Acts::expand ( queries_type & gridQueries,
const expansion_type & referenceExpansion )

Helper method to expand the grid queries along a given dimension.

Template Parameters
queries_typethe type of the grid queries
expansion_typethe type of the reference expansion
kDIMthe dimension to be expanded
Parameters
gridQueriesthe grid queries to be expanded
referenceExpansionthe reference expansion values

◆ extractNucleusZandA()

constexpr std::pair< std::int32_t, std::int32_t > Acts::extractNucleusZandA ( PdgParticle pdg)
staticconstexpr

Extract Z and A for a given nucleus.

PDG number of a nucleus has a form 10LZZZAAAI, where L is number of lambdas, ZZZ is proton number, AAA is atomic number, I is isomer level. See PDG section "Monte Carlo Particle Numbering Scheme" , point 16: https://pdg.lbl.gov/2025/reviews/rpp2024-rev-monte-carlo-numbering.pdf

Parameters
pdgThe PDG particle code of the nucleus
Returns
A pair containing the proton number (Z) and atomic number (A)

◆ extrapolateTracksToReferenceSurface()

template<TrackContainerFrontend track_container_t, typename propagator_t, typename propagator_options_t>
Result< void > Acts::extrapolateTracksToReferenceSurface ( const track_container_t & trackContainer,
const Surface & referenceSurface,
const propagator_t & propagator,
propagator_options_t options,
TrackExtrapolationStrategy strategy,
const Logger & logger = *getDefaultLogger("TrackExtrapolation",                                             Logging::INFO) )

Extrapolate tracks to a reference surface.

Template Parameters
track_container_tThe track container type
propagator_tThe propagator type
propagator_options_tThe propagator options type
Parameters
trackContainerThe track container which is modified in-place
referenceSurfaceThe reference surface
propagatorThe propagator
optionsThe propagator options
strategyThe extrapolation strategy
loggerThe logger
Returns
The result of the extrapolation

◆ extrapolateTrackToReferenceSurface()

template<TrackProxyConcept track_proxy_t, typename propagator_t, typename propagator_options_t>
Result< void > Acts::extrapolateTrackToReferenceSurface ( track_proxy_t & track,
const Surface & referenceSurface,
const propagator_t & propagator,
propagator_options_t options,
TrackExtrapolationStrategy strategy,
const Logger & logger = *getDefaultLogger("TrackExtrapolation",                                             Logging::INFO) )

Extrapolate a track to a reference surface.

Template Parameters
track_proxy_tThe track proxy type
propagator_tThe propagator type
propagator_options_tThe propagator options type
Parameters
trackThe track which is modified in-place
referenceSurfaceThe reference surface
propagatorThe propagator
optionsThe propagator options
strategyThe extrapolation strategy
loggerThe logger
Returns
The result of the extrapolation

◆ factorial()

template<std::unsigned_integral T>
T Acts::factorial ( const T N)
constexpr

Calculate the the factorial of an integer.

Parameters
NNumber of which the factorial is to be calculated
Returns
The factorial of N

◆ fastCathetus()

template<typename T, typename... Args>
auto Acts::fastCathetus ( T hypotenuse,
Args... args )
constexpr

Fast cathetus calculation for multiple arguments.

Parameters
hypotenuseThe hypotenuse value
argsVariable number of arguments to calculate the cathetus for
Returns
Square root of difference between the square of the hypotenuse and the square of the given arguments

◆ fastHypot() [1/2]

template<typename T>
auto Acts::fastHypot ( T arg)
constexpr

Overload for single argument.

Parameters
argSingle argument for which the hypotenuse is calculated
Returns
Absolute value of the argument

◆ fastHypot() [2/2]

template<typename... T>
auto Acts::fastHypot ( T... args)
constexpr

Fast hypotenuse calculation for multiple arguments.

Parameters
argsVariable number of arguments
Returns
Square root of sum of squares of arguments

◆ filledArray()

template<typename T, std::size_t N>
std::array< T, N > Acts::filledArray ( const T & defVal)
constexpr

creates an array of type T and size N and assigns all elements to the parsed default value def_val.

This basically allows for inline construction and initialization of class-member arrays

Parameters
defValDefault value to assign
Returns
Array filled with the default value

◆ findCharge()

std::optional< float > Acts::findCharge ( PdgParticle pdg)

Find the charge for a given PDG particle number.

Parameters
pdgPDG particle number
Returns
Charge in native units.

◆ findChargeOfNucleus()

float Acts::findChargeOfNucleus ( PdgParticle pdg)

Find the charge for a given PDG particle number of a nucleus.

Try its ground state first, and ultimately get the proton number from PDG

Parameters
pdgPDG particle number for the nucleus
Returns
Charge in native units.

◆ findFirstMeasurementState()

template<TrackProxyConcept track_proxy_t>
Result< typename track_proxy_t::ConstTrackStateProxy > Acts::findFirstMeasurementState ( const track_proxy_t & track)

Find the first measurement state in a track.

Parameters
trackThe track to search
Returns
Result containing the first measurement state proxy or error

◆ findLastMeasurementState()

template<TrackProxyConcept track_proxy_t>
Result< typename track_proxy_t::ConstTrackStateProxy > Acts::findLastMeasurementState ( const track_proxy_t & track)

Find the last measurement state in a track.

Parameters
trackThe track to search
Returns
Result containing the last measurement state proxy or error

◆ findMass()

std::optional< float > Acts::findMass ( PdgParticle pdg)

Find the mass for a given PDG particle number.

Parameters
pdgPDG particle number
Returns
Mass in native units.

◆ findMassOfNucleus()

float Acts::findMassOfNucleus ( PdgParticle pdg)

Find the mass for a given PDG particle number of a nucleus.

Try its ground state first, and ultimately get the mass from Bethe-Weizsacker formula

Parameters
pdgPDG particle number for the nucleus
Returns
Mass in native units

◆ findName()

std::optional< std::string_view > Acts::findName ( PdgParticle pdg)

Find a descriptive particle name for a given PDG particle number.

Parameters
pdgPDG particle number
Returns
Particle name.

◆ findNameOfNucleus()

std::optional< std::string_view > Acts::findNameOfNucleus ( PdgParticle pdg)

Find a descriptive particle name for a given PDG particle number of a nucleus.

Try to get the name from its ground state.

Parameters
pdgPDG particle number for the nucleus
Returns
Particle name.

◆ findParticleData()

std::optional< ParticleData > Acts::findParticleData ( PdgParticle pdg)

Find all known particle data for a given PDG particle number.

Parameters
pdgPDG particle number
Returns
Particle data if found

◆ findTrackStateForExtrapolation()

template<TrackProxyConcept track_proxy_t>
Result< std::pair< typename track_proxy_t::ConstTrackStateProxy, double > > Acts::findTrackStateForExtrapolation ( const GeometryContext & geoContext,
const track_proxy_t & track,
const Surface & referenceSurface,
TrackExtrapolationStrategy strategy,
const Logger & logger = *getDefaultLogger("TrackExtrapolation",                                             Logging::INFO) )

Find a track state for extrapolation.

Template Parameters
track_proxy_tThe track proxy type
Parameters
geoContextThe geometry context
trackThe track
referenceSurfaceThe reference surface
strategyThe extrapolation strategy
loggerThe logger
Returns
The result of the search containing the track state and the distance to the reference surface

◆ freeToSphericalDirectionJacobian()

Matrix< 2, 3 > Acts::freeToSphericalDirectionJacobian ( const Vector3 & direction)

Calculates the Jacobian for free to spherical direction vector transformation.

Note
We use the direction vector as an input because the trigonometric simplify that way
Parameters
directionThe normalised direction vector
Returns
The Jacobian d(phi, theta) / d(dir_x, dir_y, dir_z)

◆ getDefaultLogger()

std::unique_ptr< const Logger > Acts::getDefaultLogger ( const std::string & name,
const Logging::Level & lvl,
std::ostream * log_stream = &std::cout )

get default debug output logger

Parameters
[in]namename of the logger instance
[in]lvldebug threshold level
[in]log_streamoutput stream used for printing debug messages

This function returns a pointer to a Logger instance with the following decorations enabled:

  • time stamps
  • name of logging instance
  • debug level
Returns
pointer to logging instance

◆ getDummyLogger()

const Logger & Acts::getDummyLogger ( )

Get a dummy logger that discards all output.

Returns
Reference to dummy logger instance

◆ globalToLocalFromBin()

std::function< double(Acts::Vector3)> Acts::globalToLocalFromBin ( Acts::AxisDirection & type)

return a function that return the coordinate corresponding to type of bin

Parameters
[in]typeType of bin
Returns
a coordinate transform function

◆ Grid() [1/2]

template<typename T, class... Axes>
Acts::Grid ( TypeTag< T > ,
Axes &&... axes )->Grid< T, Axes... >

Deduction guide for Grid with rvalue reference axes.

Parameters
axesVariable number of axes (rvalue references)

◆ Grid() [2/2]

template<typename T, class... Axes>
Acts::Grid ( TypeTag< T > ,
Axes &... axes )->Grid< T, Axes... >

Deduction guide for Grid with lvalue reference axes.

Parameters
axesVariable number of axes (lvalue references)

◆ GridGlobalIterator()

template<typename T, class... Axes>
Acts::GridGlobalIterator ( const Grid< T, Axes... > & grid,
std::size_t idx )->GridGlobalIterator< T, Axes... >

Deduction guide for GridGlobalIterator.

Parameters
gridGrid to iterate over
idxStarting index

◆ hashString()

HashedString Acts::hashString ( std::string_view s)
consteval

Compile-time hash of string literal.

Parameters
sString view to hash
Returns
Hashed string representation

◆ hashStringDynamic()

HashedString Acts::hashStringDynamic ( std::string_view s)
constexpr

Runtime hash of string.

Parameters
sString view to hash
Returns
Hashed string representation

◆ hypotSquare()

template<typename... T>
auto Acts::hypotSquare ( T... args)
constexpr

Calculates the sum of squares of arguments.

Parameters
argsVariable number of arguments to square and sum
Returns
Sum of squares of all arguments

◆ interpolate()

template<typename T, std::size_t N, class Point1, class Point2 = Point1, class Point3 = Point2>
requires (Concepts::interpolatable<T, Point1, Point2, Point3>)
T Acts::interpolate ( const Point1 & position,
const Point2 & lowerCorner,
const Point3 & upperCorner,
const std::array< T, N > & values )

performs linear interpolation inside a hyper box

Template Parameters
Ttype of values to be interpolated
Nnumber of hyper box corners
Point1type specifying geometric positions
Point2type specifying geometric positions
Point3type specifying geometric positions
Parameters
[in]positionposition to which to interpolate
[in]lowerCornergeneralized lower-left corner of hyper box (containing the minima of the hyper box along each dimension)
[in]upperCornergeneralized upper-right corner of hyper box (containing the maxima of the hyper box along each dimension)
[in]valuesfield values at the hyper box corners sorted in the canonical order defined below.
Returns
interpolated value at given position
Precondition
position must describe a position inside the given hyper box, that is \(\text{lowerCorner}[i] \le \text{position}[i] \le \text{upperCorner}[i] \quad \forall i=0, \dots, d-1\).
Note
  • Given U and V of value type T as well as two double a and b, then the following must be a valid expression a * U + b * V yielding an object which is (implicitly) convertible to T.
  • All Point types must represent d-dimensional positions and support coordinate access using operator[] which should return a double (or a value which is implicitly convertible). Coordinate indices must start at 0.
  • N is the number of hyper box corners which is \(2^d\) where \(d\) is the dimensionality of the hyper box. The dimensionality must be consistent with the provided Point types.
  • Definition of the canonical order for sorting the field values: The hyper box corners are numbered according to the following scheme. Each corner is defined by the set of lower/upper boundary limits in each dimension i. This can be represented by a binary code (from left to right) where a 0 stands for a lower bound along this axis and a 1 stand for the upper bound along this axis. The left most bit corresponds to the first dimension and the bits to the left correspond to the 2nd, 3rd... dimension. The binary code can be interpreted as integer which gives the number of the corresponding hyper box corner. The field values are ordered according to ascending hyper box corner numbers.
    As an example assume we have a 3D box with lowerCorner = (1,2,3) and upperCorner = (4,5,6). The eight corners with their bit patterns and corner numbers are:
    • (1,2,3): 000 = 0
    • (1,2,6): 001 = 1
    • (1,5,3): 010 = 2
    • (1,5,6): 011 = 3
    • (4,2,3): 100 = 4
    • (4,2,6): 101 = 5
    • (4,5,3): 110 = 6
    • (4,5,6): 111 = 7

◆ isBoundVectorValid()

bool Acts::isBoundVectorValid ( const BoundVector & v,
bool validateAngleRange,
double epsilon = 1e-6,
double maxAbsEta = std::numeric_limits< double >::infinity() )

Check if a bound vector is valid.

This checks the following:

  • All values are finite
  • (optionally) The phi value is in the range [-pi, pi)
  • (optionally) The theta value is in the range [0, pi]
Parameters
vThe bound vector to check
validateAngleRangeIf true, the phi and theta values are range checked
epsilonThe epsilon to use for the checks
maxAbsEtaThe maximum allowed eta value
Returns
True if the bound vector is valid

◆ isFreeVectorValid()

bool Acts::isFreeVectorValid ( const FreeVector & v,
double epsilon = 1e-6,
double maxAbsEta = std::numeric_limits< double >::infinity() )

Check if a free vector is valid.

This checks the following:

  • All values are finite
  • Direction is normalized
Parameters
vThe free vector to check
epsilonThe epsilon to use for the checks
maxAbsEtaThe maximum allowed eta value
Returns
True if the free vector is valid

◆ isNucleus()

constexpr bool Acts::isNucleus ( PdgParticle pdg)
staticconstexpr

Check if the PDG belongs to a nucleus, i.e.

if it has 10 digits. See PDG section "Monte Carlo Particle Numbering Scheme", point 16: https://pdg.lbl.gov/2025/reviews/rpp2024-rev-monte-carlo-numbering.pdf

Parameters
pdgThe PDG particle code
Returns
True if the PDG code represents a nucleus

◆ joinStrings() [1/2]

template<std::ranges::range R>
requires std::convertible_to<std::ranges::range_value_t<R>, std::string_view>
std::string Acts::joinStrings ( R && strings,
std::string_view delimiter )

Utuility to join a range of strings with a delimiter.

Accepts any range of elements convertible to std::string_view.

Parameters
stringsRange of strings to join
delimiterDelimiter to insert between elements
Returns
Joined string

◆ joinStrings() [2/2]

template<std::ranges::range R>
requires detail::formattable<std::ranges::range_value_t<R>, char>
std::string Acts::joinStrings ( R && values,
std::string_view delimiter,
std::format_string< const std::ranges::range_value_t< R > & > format )

Utility to join a range of formattable elements with a delimiter and custom format string.

Parameters
valuesRange of values to join
delimiterDelimiter to insert between elements
formatFormat string to apply to each element
Returns
Joined string

◆ localIndices()

template<typename grid_type>
std::set< typename grid_type::index_t > Acts::localIndices ( const grid_type & grid,
const std::vector< typename grid_type::point_t > & queries,
const std::vector< std::size_t > & expansion = {} )

Helper method to fill local bins given a set of query points bin in between the extra points are filled, and a possible expansion of the bin window can be chosen.

Template Parameters
grid_typethe type of the grid that determines local binning
Parameters
gridthe grid used for this
queriesthe grid positions for the bin queries
expansionare the additional (configured) number of bins to expand the view
Returns
a set of unique indices

◆ make_error_code() [1/12]

std::error_code Acts::make_error_code ( Acts::CombinatorialKalmanFilterError e)

Create error code from CombinatorialKalmanFilterError.

Parameters
eThe error code enum value
Returns
Standard error code

◆ make_error_code() [2/12]

std::error_code Acts::make_error_code ( Acts::KalmanFitterError e)

Create error code from KalmanFitterError.

Parameters
eThe error code enum value
Returns
Standard error code

◆ make_error_code() [3/12]

std::error_code Acts::make_error_code ( Acts::MultiStepperError e)

Create error code from MultiStepperError.

Parameters
eThe error code enum value
Returns
Standard error code

◆ make_error_code() [4/12]

std::error_code Acts::make_error_code ( Acts::NavigatorError e)

Create error code from NavigatorError.

Parameters
eThe error code enum value
Returns
Standard error code

◆ make_error_code() [5/12]

std::error_code Acts::make_error_code ( Acts::PortalError e)

Create error code from PortalError.

Parameters
eThe error code enum value
Returns
Standard error code

◆ make_error_code() [6/12]

std::error_code Acts::make_error_code ( Acts::PropagatorError e)

Create error code from PropagatorError.

Parameters
eThe error code enum value
Returns
Standard error code

◆ make_error_code() [7/12]

std::error_code Acts::make_error_code ( Acts::SurfaceError e)

Create error code from SurfaceError.

Parameters
eThe error code enum value
Returns
Standard error code

◆ make_error_code() [8/12]

std::error_code Acts::make_error_code ( Acts::VertexingError e)

Create error code from VertexingError.

Parameters
eThe error code enum value
Returns
Standard error code

◆ make_error_code() [9/12]

std::error_code Acts::make_error_code ( EigenStepperError e)

Create error code from EigenStepperError.

Parameters
eThe error code enum value
Returns
Standard error code

◆ make_error_code() [10/12]

std::error_code Acts::make_error_code ( GsfError e)

Create error code from GsfError.

Parameters
eThe error code enum value
Returns
Standard error code

◆ make_error_code() [11/12]

std::error_code Acts::make_error_code ( SpacePointFormationError e)

Create error code from SpacePointFormationError.

Parameters
eThe error code enum value
Returns
Standard error code

◆ make_error_code() [12/12]

std::error_code Acts::make_error_code ( TrackExtrapolationError e)

Create error code from TrackExtrapolationError.

Parameters
eThe error code enum value
Returns
Standard error code

◆ make_octree()

template<typename box_t>
box_t * Acts::make_octree ( std::vector< std::unique_ptr< box_t > > & store,
const std::vector< box_t * > & prims,
std::size_t max_depth = 1,
typename box_t::value_type envelope1 = 0 )

Build an octree from a list of bounding boxes.

Note
store and prims do not need to contain the same objects. store is only used to pass ownership back to the caller while preserving memory location.
Template Parameters
box_tWorks will all box types.
Parameters
storeOwns the created boxes by means of std::unique_ptr.
primsBoxes to store. This is a read only vector.
max_depthNo subdivisions beyond this level.
envelope1Envelope to add/subtract to dimensions in all directions.
Returns
Pointer to the top most bounding box, containing the entire octree

◆ makeAbsolutePdgParticle()

constexpr PdgParticle Acts::makeAbsolutePdgParticle ( PdgParticle pdg)
staticconstexpr

Convert an anti-particle to its particle and leave particles as-is.

Parameters
pdgThe PDG particle code
Returns
The absolute PDG particle code

◆ makeDirectionFromAxisTangents()

template<typename T>
Eigen::Matrix< T, 3, 1 > Acts::makeDirectionFromAxisTangents ( T tanAlpha,
T tanBeta )

Construct a normalized direction vector from the tangents of the x-axis to the z-axis and of the y-axis to the z-axis.

Parameters
tanAlphaTangent of the x-axis to the z-axis
tanBetaTangent of the y-axis to the z-axis
Returns
A normalized 3D direction vector constructed from the axis tangents

◆ makeDirectionFromPhiEta()

template<typename T>
Eigen::Matrix< T, 3, 1 > Acts::makeDirectionFromPhiEta ( T phi,
T eta )

Construct a normalized direction vector from phi angle and pseudorapidity.

Parameters
phiis the direction angle in the x-y plane.
etais the pseudorapidity towards the z-axis.
Returns
A normalized 3D direction vector constructed from phi and eta
Note
The input arguments intentionally use the same template type so that a compile error occurs if inconsistent input types are used. Avoids unexpected implicit type conversions and forces the user to explicitly cast mismatched input types.

◆ makeDirectionFromPhiTheta()

template<typename T>
Eigen::Matrix< T, 3, 1 > Acts::makeDirectionFromPhiTheta ( T phi,
T theta )

Construct a normalized direction vector from phi and theta angle.

Parameters
phiis the direction angle in radian in the x-y plane.
thetais the polar angle in radian towards the z-axis.
Returns
A normalized 3D direction vector constructed from phi and theta
Note
The input arguments intentionally use the same template type so that a compile error occurs if inconsistent input types are used. Avoids unexpected implicit type conversions and forces the user to explicitly cast mismatched input types.

◆ makeGrid() [1/2]

template<typename payload_t>
std::unique_ptr< IGrid > Acts::makeGrid ( const ProtoAxis & a)

Helper method to create a 1D grid from a single proto axis.

Template Parameters
payload_tthe grid payloat type
Parameters
athe proto axis
Returns
an IGrid unique ptr and hence transfers ownership

◆ makeGrid() [2/2]

template<typename payload_t>
std::unique_ptr< IGrid > Acts::makeGrid ( const ProtoAxis & a,
const ProtoAxis & b )

Helper method to create a 2D grid from a two proto axes.

Template Parameters
payload_tthe grid payloat type
Parameters
athe first proto axis
bthe second proto axis
Returns
an IGrid unique ptr and hence transfers ownership

◆ makeNucleusGroundState()

constexpr PdgParticle Acts::makeNucleusGroundState ( PdgParticle pdg)
staticconstexpr

Convert an excited nucleus to its ground state.

PDG number of a nucleus has a form 10LZZZAAAI, where I is isomer level; I=0 is the ground state. See PDG section "Monte Carlo Particle Numbering Scheme", point 16: https://pdg.lbl.gov/2025/reviews/rpp2024-rev-monte-carlo-numbering.pdf

Parameters
pdgThe PDG particle code of the nucleus
Returns
The PDG particle code of the nucleus in its ground state

◆ makePhiThetaFromDirection()

template<typename T>
Eigen::Matrix< T, 2, 1 > Acts::makePhiThetaFromDirection ( const Eigen::Matrix< T, 3, 1 > & unitDir)

Construct a phi and theta angle from a direction vector.

Parameters
unitDir3D vector indicating a direction
Returns
A 2D vector containing phi and theta angles [phi, theta]

◆ mapMaterialPoints() [1/2]

MaterialGrid2D Acts::mapMaterialPoints ( Grid2D & grid)

Average the material collected in a 2D grid and use it to create a 2D material grid.

Parameters
[in]gridThe material collecting grid coordinate
Returns
The average material grid decomposed into classification numbers

◆ mapMaterialPoints() [2/2]

MaterialGrid3D Acts::mapMaterialPoints ( Grid3D & grid)

Average the material collected in a 3D grid and use it to create a 3D material grid.

Parameters
[in]gridThe material collecting grid coordinate
Returns
The average material grid decomposed into classification numbers

◆ matrixToBitset()

template<typename Derived>
auto Acts::matrixToBitset ( const Eigen::PlainObjectBase< Derived > & m)

Convert an integer matrix to a bitset.

Note
How the bits are ordered depends on the storage type of the matrix being converted (row-major or col-major)
Template Parameters
DerivedEigen base concrete type
Parameters
mMatrix that is converted
Returns
The converted bitset.

◆ normalizeBoundParameters()

BoundVector Acts::normalizeBoundParameters ( const BoundVector & boundParams)

Normalize the bound parameter angles.

Parameters
boundParamsThe bound parameters to normalize
Returns
The normalized bound parameters

◆ numAxisDirections()

std::size_t Acts::numAxisDirections ( )
constexpr

Returns the total number of axis directions.

Returns
the number of axis directions

◆ operator<<() [1/31]

std::ostream & Acts::operator<< ( std::ostream & os,
AxisBoundaryType bdt )

Stream operator for AxisBoundaryType.

Parameters
osOutput stream
bdtAxisBoundaryType to output
Returns
Reference to output stream

◆ operator<<() [2/31]

std::ostream & Acts::operator<< ( std::ostream & os,
AxisDirection aDir )

Output stream operator for AxisDirection.

Parameters
osis the output stream
aDiris the axis direction
Returns
the output stream

◆ operator<<() [3/31]

std::ostream & Acts::operator<< ( std::ostream & os,
AxisType type )

Stream operator for AxisType.

Parameters
osOutput stream
typeAxisType to output
Returns
Reference to output stream

◆ operator<<() [4/31]

std::ostream & Acts::operator<< ( std::ostream & os,
BoundarySurfaceFace & face )

Stream operator for BoundarySurfaceFace.

Parameters
osOutput stream
faceBoundarySurfaceFace to output
Returns
Reference to output stream

◆ operator<<() [5/31]

template<typename T, typename U, std::size_t V>
std::ostream & Acts::operator<< ( std::ostream & os,
const AxisAlignedBoundingBox< T, U, V > & box )

Overload of the << operator for bounding boxes.

Template Parameters
Tentity type
Uvalue type
Vdimension
Parameters
osThe output stream
boxThe bounding box
Returns
The given output stream.

◆ operator<<() [6/31]

std::ostream & Acts::operator<< ( std::ostream & os,
const ConstrainedStep & step )

Stream operator for ConstrainedStep.

Parameters
osOutput stream
stepConstrainedStep to output
Returns
Reference to output stream

◆ operator<<() [7/31]

std::ostream & Acts::operator<< ( std::ostream & os,
const IVisualization3D & hlp )

Stream operator for IVisualization3D.

Parameters
osThe output stream
hlpThe helper instance
Returns
Reference to output stream

◆ operator<<() [8/31]

std::ostream & Acts::operator<< ( std::ostream & os,
const Material & material )

Stream operator for Material.

Parameters
osOutput stream
materialMaterial to output
Returns
Reference to output stream

◆ operator<<() [9/31]

std::ostream & Acts::operator<< ( std::ostream & os,
const MaterialSlab & materialSlab )

Stream operator for MaterialSlab.

Parameters
osOutput stream
materialSlabMaterialSlab to output
Returns
Reference to output stream

◆ operator<<() [10/31]

template<typename T, std::size_t D>
std::ostream & Acts::operator<< ( std::ostream & os,
const Ray< T, D > & ray )

Overload of the outstream operator.

Parameters
osThe out stream
rayThe ray to write to os
Returns
The outstream given in os

◆ operator<<() [11/31]

std::ostream & Acts::operator<< ( std::ostream & os,
const std::vector< DirectedProtoAxis > & a )

Stream operator for vector of DirectedProtoAxis.

Parameters
osOutput stream
aVector of DirectedProtoAxis to output
Returns
Reference to output stream

◆ operator<<() [12/31]

std::ostream & Acts::operator<< ( std::ostream & os,
const std::vector< ProtoAxis > & a )

Stream operator for vector of ProtoAxis.

Parameters
osOutput stream
aVector of ProtoAxis to output
Returns
Reference to output stream

◆ operator<<() [13/31]

std::ostream & Acts::operator<< ( std::ostream & os,
const TrackSelector::Config & cuts )
Parameters
osOutput stream
cutsCuts to print
Returns
Reference to the output stream

◆ operator<<() [14/31]

std::ostream & Acts::operator<< ( std::ostream & os,
const TrackSelector::EtaBinnedConfig & cfg )
Parameters
osOutput stream
cfgConfiguration to print
Returns
Reference to the output stream

◆ operator<<() [15/31]

std::ostream & Acts::operator<< ( std::ostream & os,
CuboidPortalShell::Face face )

Output stream operator for the CuboidPortalShell::Face enum.

Parameters
osThe output stream
faceThe face to output
Returns
The output stream

◆ operator<<() [16/31]

std::ostream & Acts::operator<< ( std::ostream & os,
CylinderPortalShell::Face face )

Output stream operator for the CylinderPortalShell::Face enum.

Parameters
osThe output stream
faceThe face to output
Returns
The output stream

◆ operator<<() [17/31]

std::ostream & Acts::operator<< ( std::ostream & os,
DiamondPortalShell::Face face )
Parameters
osThe output stream
faceThe face to output
Returns
The output stream

◆ operator<<() [18/31]

std::ostream & Acts::operator<< ( std::ostream & os,
GeometryIdentifier id )

Stream operator for GeometryIdentifier.

Parameters
osOutput stream
idGeometryIdentifier to output
Returns
Reference to output stream

◆ operator<<() [19/31]

std::ostream & Acts::operator<< ( std::ostream & os,
HadronType hadron )

Stream operator for HadronType.

Parameters
osOutput stream
hadronThe hadron type to output
Returns
Reference to output stream

◆ operator<<() [20/31]

std::ostream & Acts::operator<< ( std::ostream & os,
IntersectionStatus status )

Ostream-operator for the IntersectionStatus enum.

Parameters
osOutput stream
statusIntersectionStatus to output
Returns
Reference to output stream

◆ operator<<() [21/31]

std::ostream & Acts::operator<< ( std::ostream & os,
MaterialUpdateMode mode )

Stream operator for MaterialUpdateMode.

Parameters
osOutput stream
modeMaterialUpdateMode to output
Returns
Reference to output stream

◆ operator<<() [22/31]

std::ostream & Acts::operator<< ( std::ostream & os,
PdgParticle pdg )

Print PDG particle numbers with a descriptive name.

Parameters
osOutput stream
pdgPDG particle to output
Returns
Reference to output stream

◆ operator<<() [23/31]

std::ostream & Acts::operator<< ( std::ostream & os,
TrackStatePropMask mask )

Stream operator for TrackStatePropMask.

Parameters
osOutput stream
maskTrackStatePropMask to output
Returns
Reference to output stream

◆ operator<<() [24/31]

std::ostream & Acts::operator<< ( std::ostream & os,
TrapezoidPortalShell::Face face )

Output stream operator for the TrapezoidPortalShell::Face enum.

Parameters
osThe output stream
faceThe face to output
Returns
The output stream

◆ operator<<() [25/31]

std::ostream & Acts::operator<< ( std::ostream & os,
VolumeAttachmentStrategy strategy )

Stream operator for VolumeAttachmentStrategy.

Parameters
osOutput stream
strategyVolumeAttachmentStrategy to output
Returns
Reference to output stream

◆ operator<<() [26/31]

std::ostream & Acts::operator<< ( std::ostream & os,
VolumeResizeStrategy strategy )

Stream operator for VolumeResizeStrategy.

Parameters
osOutput stream
strategyVolumeResizeStrategy to output
Returns
Reference to output stream

◆ operator<<() [27/31]

std::ostream & Acts::operator<< ( std::ostream & sl,
const Extent & rhs )

Overload of << operator for std::ostream for debug output.

Parameters
slOutput stream
rhsExtent to output
Returns
Reference to output stream

◆ operator<<() [28/31]

std::ostream & Acts::operator<< ( std::ostream & sl,
const GlueVolumesDescriptor & gvd )

Stream operator for GlueVolumesDescriptor.

Parameters
slOutput stream
gvdGlueVolumesDescriptor to output
Returns
Reference to output stream

◆ operator<<() [29/31]

std::ostream & Acts::operator<< ( std::ostream & sl,
const Volume & vol )

Overload of << operator for std::ostream for debug output.

Parameters
slOutput stream
volVolume to output
Returns
Reference to output stream

◆ operator<<() [30/31]

std::ostream & Acts::operator<< ( std::ostream & sl,
const VolumeBounds & vb )

Overload of << operator for std::ostream for debug output.

Parameters
slOutput stream
vbVolumeBounds to output
Returns
Reference to output stream

◆ operator<<() [31/31]

std::ostream & Acts::operator<< ( std::ostream & sl,
const VolumeBounds::BoundsType & bt )

Stream operator for VolumeBounds::BoundsType.

Parameters
slOutput stream
btBoundsType to output
Returns
Reference to output stream

◆ operator==()

bool Acts::operator== ( const VolumeBounds & lhs,
const VolumeBounds & rhs )

Equality comparison for VolumeBounds.

Parameters
lhsLeft-hand side VolumeBounds
rhsRight-hand side VolumeBounds
Returns
True if bounds are equal

◆ outputIndices()

template<typename local_bin>
std::string Acts::outputIndices ( const std::set< local_bin > & lbins)

Helper method to screen output the local bins.

Template Parameters
local_binthe type of the local bins
Parameters
lbinsthe local bins
Returns
a string containing the local bins ordered in a set

◆ parsePdgParticle()

PdgParticle Acts::parsePdgParticle ( const std::string & name)

Parse a PdgParticle from a particle name string.

Supports common particle names like "e-", "e+", "mu-", "mu+", "tau-", "tau+", "gamma", "pi0", "pi+", "pi-", "K+", "K-", "n", "n~", "p", "p~", "Pb".

Parameters
nameThe particle name string
Returns
The corresponding PdgParticle enum value
Exceptions
std::invalid_argumentif the name is not recognized

◆ pdgToShortAbsString()

std::optional< std::string_view > Acts::pdgToShortAbsString ( PdgParticle pdg)

Get short absolute string representation of PDG particle.

Parameters
pdgPDG particle number
Returns
Optional string view of particle name

◆ pow()

template<typename T, std::integral P>
T Acts::pow ( T x,
P p )
constexpr

Calculates the ordinary power of the number x.

Parameters
xNumber to take the power from
pPower to take
Returns
x raised to the power p

◆ printEigenDecomposition()

template<int n>
std::string Acts::printEigenDecomposition ( const SquareMatrix< n > & mat)

Print the eigen decomposition of a symmetric matrix in terms of eigen values and eigen vectors.

Parameters
matMatrix which is to be decomposed
Returns
: The string containing the eigen decomposition

◆ product()

template<std::unsigned_integral T>
T Acts::product ( const T lowerN,
const T upperN )
constexpr

Calculates the product of all integers within the given integer range (nLower)(nLower+1)(...)(upper-1)(upper).

If lowerN is bigger than upperN, the function returns one.

Parameters
lowerNLower range of the product calculation
upperNUpper range of the product calculation
Returns
Product result

◆ projectorToSubspaceIndices()

template<std::size_t kFullSize, typename Derived>
SubspaceIndices< kFullSize > Acts::projectorToSubspaceIndices ( const Eigen::DenseBase< Derived > & projector)

Convert a projector to subspace indices.

Template Parameters
kFullSizethe full size of the subspace
Derivedthe derived type
Parameters
projectorthe projector
Returns
the subspace indices

◆ range_medium()

template<typename T>
std::tuple< typename T::value_type, double > Acts::range_medium ( const T & tseries)

Return range and medium of an unsorted numeric series.

Template Parameters
Ta numeric series
Parameters
tseriesis the number series
Returns
[ range, medium ] in an tuple

◆ rangeContainsSubstring()

template<typename R>
bool Acts::rangeContainsSubstring ( const R & range,
std::string_view value )

This function checks if at least one string from a given range is contained within a specified string (value).

Template Parameters
RThe type of the range (e.g., vector<string>, list<string>, array<string>).
Parameters
rangeThe range to search within.
valueThe string in which we search for substrings from the range
Returns
true if a such a string in range is found, false otherwise.

◆ rangeContainsValue()

template<typename R, typename T>
bool Acts::rangeContainsValue ( const R & range,
const T & value )

This can be replaced with C++23 to use the std::ranges::contains method.

This function searches through the given range for a specified value and returns true if the value is found, or false otherwise.

Template Parameters
RThe type of the range (e.g., vector, list, array).
TThe type of the value to search for within the range.
Parameters
rangeThe range to search within. This can be any range-compatible container.
valueThe value to search for in the range.
Returns
true if the value is found within the range, false otherwise.

◆ reduceMixtureWithKLDistanceNaive()

void Acts::reduceMixtureWithKLDistanceNaive ( std::vector< GsfComponent > & cmpCache,
std::size_t maxCmpsAfterMerge,
const Surface & surface )

Naive implementation of component reduction with KL-distance.

Recomputes all distances in every iteration without any caching or optimization. This serves as a baseline for testing and benchmarking the optimized version.

Parameters
cmpCachethe component collection
maxCmpsAfterMergethe number of components we want to reach
surfacethe surface type on which the components are

◆ reflectBoundParameters()

BoundVector Acts::reflectBoundParameters ( const BoundVector & boundParams)

Reflect bound track parameters.

Parameters
boundParamsBound track parameters vector
Returns
Reflected bound track parameters vector

◆ reflectFreeParameters()

FreeVector Acts::reflectFreeParameters ( const FreeVector & freeParams)

Reflect free track parameters.

Parameters
freeParamsFree track parameters vector
Returns
Reflected free track parameters vector

◆ safeExp()

template<typename T>
T Acts::safeExp ( T val)
constexprnoexcept

Calculate the exponential function while avoiding FPEs.

Parameters
valargument for which the exponential function should be evaluated.
Returns
0 in the case of underflow, std::numeric_limits<T>::infinity in the case of overflow, std::exp(val) else

◆ safeInverse()

template<typename MatrixType, typename ResultType = MatrixType>
std::optional< ResultType > Acts::safeInverse ( const MatrixType & m)
noexcept

FPE "safe" functions.

Our main motivation for this is that users might have a strict FPE policy which would flag every single occurrence as a failure and then somebody has to investigate. Since we are processing a high number of events and floating point numbers sometimes work in mysterious ways the caller of this function might want to hide FPEs and handle them in a more controlled way. Calculate the inverse of an Eigen matrix after checking if it can be numerically inverted. This allows to catch potential FPEs before they occur. For matrices up to 4x4, the inverse is computed directly. For larger matrices, and dynamic matrices the FullPivLU is used.

Template Parameters
DerivedEigen derived concrete type
ResultEigen result type defaulted to input type
Parameters
mEigen matrix to invert
Returns
The theta value

◆ serializeSubspaceIndices()

template<std::size_t FullSize>
requires (FullSize <= 8)
SerializedSubspaceIndices Acts::serializeSubspaceIndices ( const SubspaceIndices< FullSize > & indices)
static

Serialize subspace indices to a single 64 bit integer.

Template Parameters
FullSizethe full size of the subspace
Parameters
indicesthe subspace indices
Returns
the serialized subspace indices

◆ slowCathetus()

template<typename T, typename... Args>
auto Acts::slowCathetus ( T hypotenuse,
Args... args )
constexpr

Slow but more accurate cathetus calculation for multiple arguments.

Note
For 2 arguments, the fast and slow cathetus are identical as they both use the same formula.
Parameters
hypotenuseThe hypotenuse value
argsVariable number of arguments to calculate the cathetus for
Returns
Square root of difference between the square of the hypotenuse and the square of the given arguments

◆ slowHypot() [1/4]

template<typename T>
auto Acts::slowHypot ( T arg)
constexpr

Overload for single argument.

Parameters
argSingle argument for which the hypotenuse is calculated
Returns
Absolute value of the argument

◆ slowHypot() [2/4]

template<typename T>
auto Acts::slowHypot ( T x,
T y )
constexpr

Overload for two arguments.

Parameters
xFirst argument
ySecond argument
Returns
Square root of sum of squares of x and y

◆ slowHypot() [3/4]

template<typename T>
auto Acts::slowHypot ( T x,
T y,
T z )
constexpr

Overload for three arguments.

Parameters
xFirst argument
ySecond argument
zThird argument
Returns
Square root of sum of squares of x, y and z

◆ slowHypot() [4/4]

template<typename... T>
auto Acts::slowHypot ( T... args)
constexpr

Slow but more accurate hypotenuse calculation for multiple arguments.

Parameters
argsVariable number of arguments
Returns
Square root of sum of squares of arguments

◆ smoothTrack()

template<TrackProxyConcept track_proxy_t, typename smoother_t = GainMatrixSmoother>
Result< void > Acts::smoothTrack ( const GeometryContext & geoContext,
track_proxy_t & track,
const Logger & logger = *getDefaultLogger("TrackSmoother", Logging::INFO),
smoother_t smoother = GainMatrixSmoother() )

Smooth a track using the gain matrix smoother.

Template Parameters
track_proxy_tThe track proxy type
smoother_tThe smoother type
Parameters
geoContextThe geometry context
trackThe track to smooth
loggerThe logger
smootherThe smoother
Returns
The result of the smoothing

◆ smoothTracks()

template<TrackContainerFrontend track_container_t>
Result< void > Acts::smoothTracks ( const GeometryContext & geoContext,
const track_container_t & trackContainer,
const Logger & logger = *getDefaultLogger("TrackSmoother", Logging::INFO) )

Smooth tracks using the gain matrix smoother.

Template Parameters
track_container_tThe track container type
Parameters
geoContextThe geometry context
trackContainerThe track container
loggerThe logger
Returns
The result of the smoothing

◆ sphericalToFreeDirectionJacobian()

Matrix< 3, 2 > Acts::sphericalToFreeDirectionJacobian ( const Vector3 & direction)

Calculates the Jacobian for spherical to free direction vector transformation.

Note
We use the direction vector as an input because the trigonometric simplify that way
Parameters
directionThe normalised direction vector
Returns
The Jacobian d(dir_x, dir_y, dir_z) / d(phi, theta)

◆ square()

template<typename T>
auto Acts::square ( T x)
constexpr

Returns the square of the passed number.

Parameters
xThe number to square
Returns
The square of the input

◆ subtractBoundParameters()

BoundVector Acts::subtractBoundParameters ( const BoundVector & lhs,
const BoundVector & rhs )

Subtract bound parameters and take care of angle periodicity for phi and theta.

This is intended for small differences only i.e. KF updates.

Parameters
lhsThe left hand side bound parameters
rhsThe right hand side bound parameters
Returns
The difference of the bound parameters

◆ sumUpToN()

template<std::integral T>
T Acts::sumUpToN ( const T N)
constexpr

Calculates the sum of 1 + 2 + 3+ ... + N using the Gaussian sum formula.

Parameters
NNumber until which the sum runs
Returns
Sum of integers from 1 to N

◆ symMatIndices()

template<std::size_t N>
requires (N > 1)
std::array< std::size_t, 2 > Acts::symMatIndices ( const std::size_t k)
constexpr

Map an unrolled vector index to the indices of the lower triangular part of a symmetric N x N matrix.

Inverse of vecIdxFromSymMat.

Parameters
kThe unrolled vector index
Returns
A pair of indices (i, j) such that the element at (i, j) in the symmetric matrix corresponds to the k-th element in the unrolled vector.

◆ template_switch()

template<template< std::size_t > class Callable, std::size_t N, std::size_t NMAX, typename... Args>
auto Acts::template_switch ( std::size_t v,
Args &&... args )

Dispatch a call based on a runtime value on a function taking the value at compile time.

This function allows to write a templated functor, which accepts a std::size_t like parameter at compile time. It is then possible to make a call to the corresponding instance of the functor based on a runtime value. To achieve this, the function essentially created a if cascade between N and NMAX, attempting to find the right instance. Because the cascade is visible to the compiler entirely, it should be able to optimize.

Template Parameters
CallableType which takes a std::size_t as a compile time param
NValue from which to start the dispatch chain, i.e. 0 in most cases
NMAXMaximum value up to which to attempt a dispatch
Parameters
vThe runtime value to dispatch on
argsAdditional arguments passed to Callable::invoke().
Returns
The result of calling the dispatched template instance
Note
Callable is expected to have a static member function invoke that is callable with Args

◆ template_switch_lambda()

template<std::size_t N, std::size_t NMAX, typename Lambda, typename... Args>
auto Acts::template_switch_lambda ( std::size_t v,
Lambda && func,
Args &&... args )

Alternative version of template_switch which accepts a generic lambda and communicates the dimension via an integral constant type.

Template Parameters
NValue from which to start the dispatch chain, i.e. 0 in most cases
NMAXMaximum value up to which to attempt a dispatch
Parameters
vThe runtime value to dispatch on
funcThe lambda to invoke
argsAdditional arguments passed to func
Returns
The result of calling the dispatched lambda function

◆ toArray()

template<std::size_t kDIM, typename value_t>
std::array< value_t, kDIM > Acts::toArray ( const std::vector< value_t > & vecvals)

Converts a vector to a fixed-size array with truncating or padding.

This function copies elements from the input vector into a fixed-size array. If the vector contains more than kDIM elements, the array is truncated to fit. If the vector contains fewer elements than kDIM, the remaining array elements are value-initialized (default-initialized, i.e., filled with zero or default values).

Template Parameters
kDIMThe size of the resulting array.
value_tThe type of elements in the vector and the array.
Parameters
vecvalsThe input vector to be converted to an array.
Returns
An array containing the first kDIM elements of the vector.

◆ toString() [1/4]

std::string Acts::toString ( const Acts::Transform3 & transform,
int precision = 4,
const std::string & offset = "" )

Print out a transform in a structured way.

Parameters
transformThe transform to print
precisionNumeric output precision
offsetOffset in front of matrix lines
Returns
The printed string

◆ toString() [2/4]

std::string Acts::toString ( const Acts::Translation3 & translation,
int precision = 4 )

Print out a translation in a structured way.

Parameters
translationThe translation to print
precisionNumeric output precision
Returns
The printed string

◆ toString() [3/4]

template<typename derived_t>
std::string Acts::toString ( const Eigen::MatrixBase< derived_t > & matrix,
int precision = 4,
const std::string & offset = "" )

Print out a matrix in a structured way.

Template Parameters
derived_tType of the matrix
Parameters
matrixThe matrix to print
precisionNumeric output precision
offsetOffset in front of matrix lines
Returns
The printed string

◆ toString() [4/4]

std::string Acts::toString ( const std::vector< double > & pVector,
int precision = 4 )

Print out a vector of double.

Parameters
pVectorThe vector to print
precisionNumeric output precision
Returns
A formatted string representation of the vector

◆ toUnderlying()

template<typename enum_t>
std::underlying_type_t< enum_t > Acts::toUnderlying ( enum_t value)
constexpr

Convert enum to its underlying type value.

Parameters
valueEnum value to convert
Returns
Underlying type value

◆ TrackContainer() [1/3]

template<TrackContainerBackend track_container_t, typename traj_t>
Acts::TrackContainer ( const track_container_t & container,
const traj_t & traj )->TrackContainer< track_container_t, traj_t, ConstRefHolder >

Deduction guide for TrackContainer with const references.

Parameters
containerConst track container reference
trajConst trajectory reference

◆ TrackContainer() [2/3]

template<TrackContainerBackend track_container_t, typename traj_t>
Acts::TrackContainer ( track_container_t && container,
traj_t && traj )->TrackContainer< track_container_t, traj_t, ValueHolder >

Deduction guide for TrackContainer with rvalue references.

Parameters
containerTrack container rvalue reference
trajTrajectory rvalue reference

◆ TrackContainer() [3/3]

template<TrackContainerBackend track_container_t, typename traj_t>
Acts::TrackContainer ( track_container_t & container,
traj_t & traj )->TrackContainer< track_container_t, traj_t, RefHolder >

Deduction guide for TrackContainer with lvalue references.

Parameters
containerTrack container reference
trajTrajectory reference

◆ transformBoundToFreeParameters()

FreeVector Acts::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

◆ transformCoordinates() [1/2]

template<typename external_space_point_t, typename callable_t>
LinCircle Acts::transformCoordinates ( Acts::SpacePointMutableData & mutableData,
const external_space_point_t & sp,
const external_space_point_t & spM,
bool bottom,
callable_t && extractFunction )

Transform a single space point to u-v space coordinates.

Template Parameters
external_space_point_tThe external space point type
callable_tThe callable type for coordinate extraction
Parameters
mutableDataContainer for mutable variables used in seeding
spThe space point to transform
spMThe middle reference space point
bottomWhether this is a bottom space point
extractFunctionFunction to extract coordinates from space points
Returns
LinCircle representing the transformed coordinates

◆ transformCoordinates() [2/2]

template<typename external_space_point_t>
void Acts::transformCoordinates ( Acts::SpacePointMutableData & mutableData,
const std::vector< const external_space_point_t * > & vec,
const external_space_point_t & spM,
bool bottom,
std::vector< LinCircle > & linCircleVec )

Transform a vector of space points to u-v space circles with respect to a given middle space point.

Template Parameters
external_space_point_tThe external space point type.
Parameters
mutableDataContainer for mutable variables used in the seeding
[in]vecThe list of bottom or top space points
[in]spMThe middle space point.
[in]bottomShould be true if vec are bottom space points.
[out]linCircleVecThe output vector to write to.

◆ transformFreeToBoundParameters() [1/2]

Result< BoundVector > Acts::transformFreeToBoundParameters ( const FreeVector & freeParams,
const Surface & surface,
const GeometryContext & geoCtx,
double 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

◆ transformFreeToBoundParameters() [2/2]

Result< BoundVector > Acts::transformFreeToBoundParameters ( const Vector3 & position,
double time,
const Vector3 & direction,
double qOverP,
const Surface & surface,
const GeometryContext & geoCtx,
double 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

◆ transformFreeToCurvilinearParameters() [1/2]

BoundVector Acts::transformFreeToCurvilinearParameters ( double time,
const Vector3 & direction,
double 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.

◆ transformFreeToCurvilinearParameters() [2/2]

BoundVector Acts::transformFreeToCurvilinearParameters ( double time,
double phi,
double theta,
double 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.

◆ trimTrack()

template<TrackProxyConcept track_proxy_t>
requires (!track_proxy_t::ReadOnly)
void Acts::trimTrack ( track_proxy_t track,
bool trimHoles,
bool trimOutliers,
bool trimMaterial,
bool trimOtherNoneMeasurement )

Helper function to trim track states from the front and back of a track.

Template Parameters
track_proxy_tthe track proxy type
Parameters
trackthe track to trim
trimHoleswhether to trim holes
trimOutlierswhether to trim outliers
trimMaterialwhether to trim pure material states
trimOtherNoneMeasurementwhether to trim other, non measurement, states

◆ trimTrackBack()

template<TrackProxyConcept track_proxy_t>
requires (!track_proxy_t::ReadOnly)
void Acts::trimTrackBack ( track_proxy_t track,
bool trimHoles,
bool trimOutliers,
bool trimMaterial,
bool trimOtherNoneMeasurement )

Helper function to trim track states from the back of a track.

Template Parameters
track_proxy_tthe track proxy type
Parameters
trackthe track to trim
trimHoleswhether to trim holes
trimOutlierswhether to trim outliers
trimMaterialwhether to trim pure material states
trimOtherNoneMeasurementwhether to trim other, non measurement, states

◆ trimTrackFront()

template<TrackProxyConcept track_proxy_t>
requires (!track_proxy_t::ReadOnly)
void Acts::trimTrackFront ( track_proxy_t track,
bool trimHoles,
bool trimOutliers,
bool trimMaterial,
bool trimOtherNoneMeasurement )

Helper function to trim track states from the front of a track.

Template Parameters
track_proxy_tthe track proxy type
Parameters
trackthe track to trim
trimHoleswhether to trim holes
trimOutlierswhether to trim outliers
trimMaterialwhether to trim pure material states
trimOtherNoneMeasurementwhether to trim other, non measurement, states

◆ typeHash()

template<typename T>
std::uint64_t Acts::typeHash ( )

Hash for a type.

Since it's not possible to hash a type at compile-time, this function returns a runtime hash but caches it in a static variable.

Template Parameters
TType to hash
Returns
Hashed string representation

◆ unpackConstSmartPointers()

template<SmartPointerConcept T>
std::vector< std::add_pointer_t< std::add_const_t< typename T::element_type > > > Acts::unpackConstSmartPointers ( const std::vector< T > & items)

Helper function to unpack a vector of smart pointers (e.g.

shared_ptr ) into a vector of raw const pointers

Template Parameters
Tthe stored type
Parameters
itemsThe vector of smart pointers
Returns
The unpacked vector

◆ unpackSmartPointers() [1/2]

template<typename T>
std::vector< const T * > Acts::unpackSmartPointers ( const std::vector< std::shared_ptr< const T > > & items)

Helper function to unpack a vector of shared_ptr into a vector of raw pointers (const version).

Template Parameters
Tthe stored type
Parameters
itemsThe vector of shared_ptr
Returns
The unpacked vector

◆ unpackSmartPointers() [2/2]

template<SmartPointerConcept T>
std::vector< std::add_pointer_t< typename T::element_type > > Acts::unpackSmartPointers ( const std::vector< T > & items)

Helper function to unpack a vector of shared_ptr into a vector of raw pointers.

Template Parameters
Tthe stored type
Parameters
itemsThe vector of shared_ptr
Returns
The unpacked vector

◆ vecIdxFromSymMat()

template<std::size_t N>
requires (N > 0)
std::size_t Acts::vecIdxFromSymMat ( const std::size_t i,
const std::size_t k )
constexpr

Map the indices of the lower triangular part of a symmetric N x N matrix to an unrolled vector index.

Parameters
iThe row index of the symmetric matrix
kThe column index of the symmetric matrix
Returns
The corresponding vector index in the unrolled storage

◆ visit_measurement() [1/2]

template<typename L, typename A, typename B>
auto Acts::visit_measurement ( const A & param,
const B & cov,
std::size_t dim,
L && lambda )

Dispatch a lambda call on an overallocated parameter vector and covariance matrix, based on a runtime dimension value.

Inside the lambda call, the vector and matrix will have fixed dimensions, but will still point back to the originally given overallocated values.

Template Parameters
LThe lambda type
AThe parameter vector type
BThe covariance matrix type
Note
No requirements on A and B are made, to enable a single overload for both const and non-const matrices/vectors.
Parameters
paramThe parameter vector
covThe covariance matrix
dimThe actual dimension as a runtime value
lambdaThe lambda to call with the statically sized subsets
Returns
The result of calling the lambda with the statically sized measurement components

◆ visit_measurement() [2/2]

template<typename L, typename... Args>
auto Acts::visit_measurement ( std::size_t dim,
L && lambda,
Args &&... args )

Dispatch a generic lambda on a measurement dimension.

This overload doesn't assume anything about what is needed inside the lambda, it communicates the dimension via an integral constant type

Template Parameters
LThe generic lambda type to call
Parameters
dimThe runtime dimension of the measurement
lambdaThe generic lambda instance to call
argsAdditional arguments passed to lambda
Returns
Returns the lambda return value

◆ xyzCoordinateCheck()

template<typename external_space_point_t>
bool Acts::xyzCoordinateCheck ( const Acts::SeedFinderConfig< external_space_point_t > & config,
const external_space_point_t & sp,
const double * spacePointPosition,
double * outputCoordinates )

Check the compatibility of space point coordinates in xyz assuming the Bottom-Middle direction with the strip meassument details.

Template Parameters
external_space_point_tThe external space point type.
Parameters
[in]configSeedFinder config containing the delegates to the strip measurement details.
[in]spInput space point used in the check.
[in]spacePointPositionSpace point coordinates in xyz plane.
[out]outputCoordinatesThe output vector to write to.
Returns
Boolean that says if space point is compatible with being inside the detector element.

◆ zip()

template<typename... R>
auto Acts::zip ( R &&... r)

Function that allows to zip some ranges to be used in a range-based for loop.

When wanting to mutate the entries, the result must be captured by value:

for(auto [a, b, c] : zip(ra, rb, rc)) { a+=2; }

Template Parameters
RThe ranges type pack
Parameters
rThe ranges parameter pack
Note
the behaviour is undefined if the ranges do not have equal range
Returns
Zip object providing iteration over multiple ranges simultaneously

Variable Documentation

◆ kBoundSubspaceIndicesInvalid

BoundSubspaceIndices Acts::kBoundSubspaceIndicesInvalid
staticconstexpr
Initial value:
= {
eBoundSize, eBoundSize, eBoundSize, eBoundSize, eBoundSize, eBoundSize}

type alias for indices of bound track parameters subspace

used to specify which components of the bound track parameters are being referenced

◆ kSeedIndex2Invalid

SeedIndex2 Acts::kSeedIndex2Invalid
staticconstexpr
Initial value:
=
std::numeric_limits<SeedIndex2>::max()

Sentinel value for an invalid / unset seed EDM related index.

◆ kSpacePointIndex2Invalid

SpacePointIndex2 Acts::kSpacePointIndex2Invalid
staticconstexpr
Initial value:
=
std::numeric_limits<SpacePointIndex2>::max()

Sentinel value for an invalid / unset space point EDM related index.

◆ kTrackIndexInvalid

TrackIndexType Acts::kTrackIndexInvalid
staticconstexpr
Initial value:
=
std::numeric_limits<TrackIndexType>::max()

Sentinel value for an invalid / unset track EDM related index.

◆ s_onSurfaceTolerance

double Acts::s_onSurfaceTolerance = 1e-4
staticconstexpr

Tolerance for being on Surface.

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

◆ s_planeYZ

const Transform3 Acts::s_planeYZ
static
Initial value:
=
AngleAxis3(std::numbers::pi / 2., Vector3::UnitY()) *
AngleAxis3(std::numbers::pi / 2., Vector3::UnitZ()) *
Transform3::Identity()
Eigen::AngleAxis< double > AngleAxis3
Rotation defined by an angle around a rotation axis in 3D.
Definition Algebra.hpp:120

YZ plane transformation.

◆ s_planeZX

const Transform3 Acts::s_planeZX
static
Initial value:
=
AngleAxis3(-std::numbers::pi / 2., Vector3::UnitX()) *
AngleAxis3(-std::numbers::pi / 2., Vector3::UnitZ()) *
Transform3::Identity()

ZX plane transformation.

◆ SupportsBoundParameters_v

template<typename stepper_t>
bool Acts::SupportsBoundParameters_v
constexpr
Initial value:

Variable template for checking bound parameters support.