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

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

Namespaces

namespace  AngleHelpers
namespace  AxisJsonConverter
namespace  Ccl
namespace  CkfTypes
namespace  Concepts
namespace  DetrayJsonHelper
namespace  Experimental
 Contains code that is not considered stable yet and might change.
namespace  GeometryIdentifierJsonConverter
namespace  GraphViz
namespace  GridAccess
namespace  GridAccessHelpers
namespace  GridAccessJsonConverter
namespace  GridAxisGenerators
 Axis generators are used to allow defining different grid types for indexed geometry objects.
namespace  GridJsonConverter
namespace  GridSurfaceMaterialFactory
namespace  GsfConstants
namespace  HashedStringLiteral
namespace  HoughTransformUtils
namespace  IndexedGridJsonHelper
namespace  IndexGridNavigationJsonConverter
namespace  Interpolation3D
namespace  JsonSurfacesReader
namespace  KalmanVertexUpdater
namespace  Logging
namespace  MaterialInteractionAssignment
namespace  MultiTrajectoryHelpers
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  PixelSpacePointBuilder
namespace  PortalJsonConverter
namespace  ProtoAxisHelpers
namespace  ProtoAxisJsonConverter
namespace  StripSpacePointBuilder
namespace  SurfaceBoundsJsonConverter
namespace  SurfaceJsonConverter
namespace  Transform3JsonConverter
namespace  Types
namespace  UnitConstants
 Constants and helper literals for physical units.
namespace  UnitLiterals
 Namespace for user-defined literals for physical units.
namespace  VectorHelpers
namespace  VolumeBoundsJsonConverter

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
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  AnyCharge
 Charge and momentum interpretation for arbitrarily charged particles. 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
class  AppendOnlyNavigationStream
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
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
class  BinnedSurfaceMaterial
 It extends the ISurfaceMaterial base class and is an array pf MaterialSlab. More...
class  BinnedSurfaceMaterialAccumulater
 The binned surface material accumulater. 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  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 spacepoint. More...
struct  CenterReferenceGenerator
 A struct to access the center position as a sole reference. 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
 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
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
class  DetectorElementBase
 This class is the base of all detector elements that are usable by ACTS. 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
struct  ExpSafeLimit
 Specialization of the exponent limit to be used for safe exponential, depending on the floating point type. More...
struct  ExpSafeLimit< double >
struct  ExpSafeLimit< float >
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  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  GenericBoundTrackParameters
 Track parameters bound to a reference surface for a single track. More...
class  GenericCuboidVolumeBounds
class  GenericFreeTrackParameters
 Track parameters not bound to a surface for a single track. More...
class  GenericParticleHypothesis
 Particle hypothesis used in reconstruction. 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
struct  GeometryView3D
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
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 spacepoints 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
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
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
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 >
struct  IsReadOnlyMultiTrajectory< ActsPlugins::MutablePodioTrackStateContainer >
struct  IsReadOnlyMultiTrajectory< ConstVectorMultiTrajectory >
struct  IsReadOnlyMultiTrajectory< VectorMultiTrajectory >
struct  IsReadOnlyTrackContainer
struct  IsReadOnlyTrackContainer< ActsPlugins::ConstPodioTrackContainer >
struct  IsReadOnlyTrackContainer< ActsPlugins::MutablePodioTrackContainer >
struct  IsReadOnlyTrackContainer< ConstVectorTrackContainer >
struct  IsReadOnlyTrackContainer< VectorTrackContainer >
class  ISurfaceMaterial
 Base class of all surface-based material description. More...
class  ISurfaceMaterialAccumulater
 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
class  KDTree
 A general k-d tree with fast range search. More...
class  KdtSurfaces
 A wrapper class around a KDTree of surfaces. 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  MaterialValidater
 The material validater 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
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
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
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  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
struct  NavigatorStatistics
 A struct to hold statistics of the navigator. More...
class  NeighborHoodIndices
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...
struct  Neutral
 Charge and momentum interpretation for neutral particles. More...
class  NeutralParticleHypothesis
 Specialized particle hypothesis for neutral particles. More...
class  NonNeutralCharge
 Charge and momentum interpretation for arbitrarily charged but not neutral particles. More...
class  NonNeutralChargedParticleHypothesis
 Specialized particle hypothesis for non-neutral particles. 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
class  ObjVisualization3D
 This helper produces output in the OBJ format. More...
struct  OrientedSurface
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
class  ParticleHypothesis
 Specialized particle hypothesis for any kind of charged particles. 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
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
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
class  SeedFinder
struct  SeedFinderConfig
 Structure that holds configuration parameters for the seed finder algorithm. More...
struct  SeedFinderOptions
class  SeedFinderOrthogonal
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...
struct  SinglyCharged
 Charge and momentum interpretation for particles with +-e charge. More...
class  SinglyChargedParticleHypothesis
 Specialized particle hypothesis for singly charged particles. More...
class  SolenoidBField
 Analytical solenoid magnetic field implementation. More...
struct  SourceLinkAdapterIterator
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
struct  SpacePointBuilderOptions
class  SpacePointColumnProxy
 Additional column of data that can be added to the space point container. More...
class  SpacePointContainer
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
struct  SpacePointContainerOptions
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
class  SpacePointProxy2
 A proxy class for accessing individual space points. More...
class  SpacePointUtility
struct  StepperPlainOptions
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
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
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
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
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  TryAllNavigator
 Alternative Navigator which tries all possible intersections. More...
class  TryAllNavigatorBase
 Captures the common functionality of the try-all navigators. More...
class  TryAllOverstepNavigator
 Alternative Navigator which tries all possible intersections. More...
class  TypeDispatcher
 Template class for type-based function dispatch. More...
class  TypeDispatcher< base_t, return_t(args_t...)>
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
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...
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  ChargeConcept
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 updateState 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 ActsDynamicMatrix = Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>
 Dynamic-sized matrix type.
using ActsDynamicVector = Eigen::Matrix<double, Eigen::Dynamic, 1>
 Dynamic-sized vector type.
template<unsigned int kRows, unsigned int kCols>
using ActsMatrix = Eigen::Matrix<double, kRows, kCols>
 Fixed-size matrix type for NxM matrices.
template<unsigned int kSize>
using ActsSquareMatrix = Eigen::Matrix<double, kSize, kSize>
 Fixed-size square matrix type for NxN matrices.
template<unsigned int kSize>
using ActsVector = Eigen::Matrix<double, kSize, 1>
 Fixed-size vector type for N-dimensional vectors.
using AlignmentMatrix = ActsMatrix<eAlignmentSize, eAlignmentSize>
 Square matrix type for alignment parameters.
using AlignmentRowVector = ActsMatrix<1, eAlignmentSize>
 Row vector type for alignment parameters.
using AlignmentToBoundMatrix = ActsMatrix<eBoundSize, eAlignmentSize>
 Matrix type for transforming alignment parameters to bound parameters.
using AlignmentToPathMatrix = ActsMatrix<1, eAlignmentSize>
 Matrix type for transforming alignment parameters to path length.
using AlignmentToPositionMatrix = ActsMatrix<3, eAlignmentSize>
 Matrix type for transforming alignment parameters to position.
using AlignmentVector = ActsVector<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*)>
 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>
using AnyMutableTrackProxy = AnyTrackProxy<false>
 Alias for mutable type-erased track (though currently all operations are const).
using AnyMutableTrackStateProxy = AnyTrackStateProxy<false>
using AxisScalar = Vector3::Scalar
 Scalar type used for axis values in surface array binning.
using BoundarySurface = BoundarySurfaceT<TrackingVolume>
using BoundMatrix = ActsMatrix<eBoundSize, eBoundSize>
 Matrix type for bound track parameter transformations.
using BoundSquareMatrix = ActsSquareMatrix<eBoundSize>
 Square matrix type for bound track parameter covariance.
using BoundSubspaceIndices = SubspaceIndices<eBoundSize>
 Type alias for bound parameter subspace indices.
using BoundToFreeMatrix = ActsMatrix<eFreeSize, eBoundSize>
 Matrix type for mapping from bound to free track parameters.
using BoundTrackParameters = GenericBoundTrackParameters<ParticleHypothesis>
 BoundTrackParameters can hold any kind of charge.
using BoundVector = ActsVector<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>
template<typename T>
using ConstSpacePointColumnProxy = SpacePointColumnProxy<T, true>
using ConstSpacePointProxy2 = SpacePointProxy2<true>
using ConstTrackStateTypeMap = TrackStateTypeMap<true>
using DetectorConfig = ScoreBasedAmbiguityResolution::DetectorConfig
 Type alias for detector-specific ambiguity resolution configuration.
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 = ActsMatrix<eFreeSize, eFreeSize>
 Matrix type for free track parameter transformations.
using FreeSquareMatrix = ActsSquareMatrix<eFreeSize>
 Square matrix type for free track parameter covariance.
using FreeToBoundMatrix = ActsMatrix<eBoundSize, eFreeSize>
 Matrix type for mapping from free to bound track parameters.
using FreeToPathMatrix = ActsMatrix<1, eFreeSize>
 Matrix type for mapping from free parameters to path length.
using FreeTrackParameters = GenericFreeTrackParameters<ParticleHypothesis>
 FreeTrackParameters can hold any kind of charge.
using FreeVector = ActsVector<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
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.
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>
using MultiIntersection3D = MultiIntersection<3>
using MutableLayerPtr = std::shared_ptr<Layer>
 Type alias for a mutable pointer to a layer.
using MutableSeedProxy2 = SeedProxy2<false>
template<typename T>
using MutableSpacePointColumnProxy = SpacePointColumnProxy<T, false>
using MutableSpacePointProxy2 = SpacePointProxy2<false>
using MutableTrackStateTypeMap = TrackStateTypeMap<false>
using NavigationDelegate
 Central alias for the navigation delegate.
using NeutralBoundTrackParameters
 Type alias for bound track parameters of neutral particles.
using NeutralFreeTrackParameters
 Type alias for free track parameters of neutral particles.
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
using RegularCylinderIndexGridNavigationPolicy
using RegularDiscIndexGrid
using RegularDiscIndexGridNavigationPolicy
using RegularPlaneIndexGrid
using RegularPlaneIndexGridNavigationPolicy
using RegularRingIndexGrid
using RegularRingIndexGridNavigationPolicy
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
using SerializedSubspaceIndices = std::uint64_t
 Type alias for serialized subspace indices.
using SinglyChargedBoundTrackParameters
 Type alias for bound track parameters of singly charged particles.
using SinglyChargedFreeTrackParameters
 Type alias for free track parameters of singly charged particles.
using SourceLinkSurfaceAccessor = Delegate<const Surface*(const SourceLink&)>
 Delegate to unpack the surface associated with a source link.
using SpacePointIndex2 = std::uint32_t
using SpacePointIndexRange2 = std::pair<SpacePointIndex2, SpacePointIndex2>
using SpacePointIndexSubset2 = std::span<const SpacePointIndex2>
using SquareMatrix2 = ActsSquareMatrix<2>
 2x2 square matrix type, typically used for 2D coordinate covariance
using SquareMatrix3 = ActsSquareMatrix<3>
 3x3 square matrix type, typically used for 3D coordinate covariance
using SquareMatrix4 = ActsSquareMatrix<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.
using Vector2 = ActsVector<2>
 2-dimensional vector type for 2D coordinates
using Vector3 = ActsVector<3>
 3-dimensional vector type for e.g. spatial coordinates and momenta
using Vector4 = ActsVector<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 More...
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 orientatin 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 { CombinatorialKalmanFilterBranchStopperResult::Continue , CombinatorialKalmanFilterBranchStopperResult::StopAndDrop , CombinatorialKalmanFilterBranchStopperResult::StopAndKeep }
 Return type of the BranchStopper delegate for the CombinatorialKalmanFilter. More...
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 { ComponentMergeMethod::eMean , ComponentMergeMethod::eMaxWeight }
 Available reduction methods for the reduction of a Gaussian mixture. More...
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. More...
enum class  DetectorMeasurementInfo : short { eDefault , eDetailed }
 Level of detector measurement information for seeding. More...
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. More...
enum class  IntersectionStatus : int { unreachable = 0 , reachable = 1 , onSurface = 2 }
 Status enum. More...
enum class  KalmanFitterError {
  KalmanFitterError::UpdateFailed = 1 , KalmanFitterError::SmoothFailed , KalmanFitterError::OutputConversionFailed , KalmanFitterError::NoMeasurementFound ,
  KalmanFitterError::ReversePropagationFailed , KalmanFitterError::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. More...
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. More...
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 , 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. More...
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  SpacePointCandidateType : short { eBottom , eTop }
 Types of space point candidates for seeding. More...
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 , XY = 1 << 14 ,
  ZR = 1 << 15 , XYZ = 1 << 16 , XYZR = 1 << 17 , VarianceZR = 1 << 18 ,
  Strip
}
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 (Can be removed for c++ 23).
 ACTS_DEFINE_ENUM_BITWISE_OPERATORS (MaterialUpdateMode)
 ACTS_DEFINE_ENUM_BITWISE_OPERATORS (SpacePointColumns)
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>
ActsMatrix< 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< ActsVector< nMeasurementDim >, ActsSquareMatrix< 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/R/37/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< ActsVector< nMeasurementDim >, ActsSquareMatrix< 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< ActsVector< nMeasurementDim >, ActsSquareMatrix< 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<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 Return type & magnitude remain unaffected by this method which allows usage for Vectors & other types providing the - operator.
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)
template<class T, class decorator_t>
void decorateJson (const decorator_t *decorator, const T *src, nlohmann::json &dest)
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.
template<std::ranges::range spacepoint_range_t>
Result< BoundVectorestimateTrackParamsFromSeed (const GeometryContext &gctx, spacepoint_range_t spRange, const Surface &surface, const Vector3 &bField)
 Estimate the full track parameters from three space points.
FreeVector estimateTrackParamsFromSeed (const Vector3 &sp0, const Vector3 &sp1, const Vector3 &sp2, const Vector3 &bField)
 Estimate the full track parameters from three space points.
template<std::ranges::range spacepoint_range_t>
FreeVector estimateTrackParamsFromSeed (spacepoint_range_t spRange, const Vector3 &bField)
 Estimate the full 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>
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 setup 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 setup 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.
ActsMatrix< 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)
void from_json (const nlohmann::json &j, BinUtility &bu)
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)
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::convertible_to<std::ranges::range_value_t<R>, std::string_view>)
std::string joinStrings (R &&values, std::string_view delimiter)
 Utility to join a range of formattable elements 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 setup 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 setup 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 setup 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 setup 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.
Acts::Vector3 operator* (const Acts::Vector3 &value, Direction dir)
 Multiply Vector3 with Direction.
Acts::Vector3 operator* (Direction dir, const Acts::Vector3 &value)
 Multiply Direction with Vector3.
constexpr double operator* (Direction dir, double value)
 Multiply Direction with double.
constexpr float operator* (Direction dir, float value)
 Multiply Direction with float.
constexpr int operator* (Direction dir, int value)
 Multiply Direction with integer.
constexpr double operator* (double value, Direction dir)
 Multiply double with Direction.
constexpr float operator* (float value, Direction dir)
 Multiply float with Direction.
constexpr int operator* (int value, Direction dir)
 Multiply integer with Direction.
Acts::Vector3operator*= (Acts::Vector3 &value, Direction dir)
 Multiply-assign Vector3 with Direction.
constexpr double operator*= (double &value, Direction dir)
 Multiply-assign double with Direction.
constexpr float operator*= (float &value, Direction dir)
 Multiply-assign float with Direction.
constexpr int operator*= (int &value, Direction dir)
 Multiply-assign integer with Direction.
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, Direction dir)
 Stream operator for Direction.
std::ostream & operator<< (std::ostream &os, GeometryIdentifier id)
 Stream operator for GeometryIdentifier.
std::ostream & operator<< (std::ostream &os, HadronType hadron)
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<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) If lowerN is bigger than upperN, the function returns one.
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, 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.
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<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.
ActsMatrix< 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)
void to_json (nlohmann::json &j, const BinUtility &bu)
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)
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_spacepoint_t, typename callable_t>
LinCircle transformCoordinates (Acts::SpacePointMutableData &mutableData, const external_spacepoint_t &sp, const external_spacepoint_t &spM, bool bottom, callable_t &&extractFunction)
 Transform a single spacepoint to u-v space coordinates.
template<typename external_spacepoint_t>
void transformCoordinates (Acts::SpacePointMutableData &mutableData, const std::vector< const external_spacepoint_t * > &vec, const external_spacepoint_t &spM, bool bottom, std::vector< LinCircle > &linCircleVec)
 Transform a vector of spacepoints to u-v space circles with respect to a given middle spacepoint.
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<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_spacepoint_t>
bool xyzCoordinateCheck (const Acts::SeedFinderConfig< external_spacepoint_t > &config, const external_spacepoint_t &sp, const double *spacepointPosition, double *outputCoordinates)
 Check the compatibility of spacepoint 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 TrackIndexType kTrackIndexInvalid
 Sentinel value for an invalid / unset track EDM related index.
static constexpr float NoTime = std::numeric_limits<float>::quiet_NaN()
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
static const InfiniteBounds s_noBounds {}
static constexpr double s_onSurfaceTolerance = 1e-4
 Tolerance for being on Surface.
static const Transform3 s_planeXY = Transform3::Identity()
static const Transform3 s_planeYZ
static const Transform3 s_planeZX
constexpr double s_transformEquivalentTolerance = 1e-9
 Tolerance for transform equivalence checks.
static ViewConfig s_viewFiltered = {.color = {255, 255, 0}}
static const ViewConfig s_viewGrid = {.color = {220, 0, 0}}
static const ViewConfig s_viewLine = {.color = {0, 0, 220}}
static ViewConfig s_viewMeasurement = {.color = {255, 102, 0}}
static ViewConfig s_viewParameter = {.color = {0, 0, 255}}
static const ViewConfig s_viewPassive = {.color = {240, 280, 0}}
static const ViewConfig s_viewPortal = {.color = Color{"#308c48"}}
static ViewConfig s_viewPredicted = {.color = {51, 204, 51}}
static const ViewConfig s_viewSensitive = {.color = {0, 180, 240}}
static ViewConfig s_viewSmoothed = {.color = {0, 102, 25}}
static const ViewConfig s_viewSurface = {.color = {170, 170, 170}}
static const ViewConfig s_viewVolume = {.color = {220, 220, 0}}
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

◆ AlignmentMatrix

Square matrix type for alignment parameters.

◆ AlignmentRowVector

Row vector type for alignment parameters.

◆ AlignmentToBoundMatrix

Matrix type for transforming alignment parameters to bound parameters.

◆ AlignmentToPathMatrix

Matrix type for transforming alignment parameters to path length.

◆ AlignmentToPositionMatrix

Matrix type for transforming alignment parameters to position.

◆ AlignmentVector

Vector type for alignment parameters.

◆ AnyConstTrackProxy

Alias for read-only type-erased track.

◆ AnyConstTrackStateProxy

◆ AnyMutableTrackProxy

Alias for mutable type-erased track (though currently all operations are const).

◆ AnyMutableTrackStateProxy

◆ AxisScalar

using Acts::AxisScalar = Vector3::Scalar

Scalar type used for axis values in surface array binning.

◆ BoundarySurface

◆ BoundMatrix

Matrix type for bound track parameter transformations.

◆ BoundSquareMatrix

Square matrix type for bound track parameter covariance.

◆ BoundSubspaceIndices

Type alias for bound parameter subspace indices.

◆ BoundToFreeMatrix

Matrix type for mapping from bound to free track parameters.

◆ BoundTrackParameters

BoundTrackParameters can hold any kind of charge.

◆ BoundVector

Vector type for bound track parameters.

◆ 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

◆ ConstDeRef_t

template<PointerConcept T>
using Acts::ConstDeRef_t = std::add_const_t<RemovePointer_t<T>>&

Construct a const pointer dereference.

◆ 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

◆ ConstSeedProxy2

◆ ConstSpacePointColumnProxy

template<typename T>
using Acts::ConstSpacePointColumnProxy = SpacePointColumnProxy<T, true>

◆ ConstSpacePointProxy2

◆ ConstTrackStateTypeMap

◆ 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

◆ FreeMatrix

Matrix type for free track parameter transformations.

◆ FreeSquareMatrix

Square matrix type for free track parameter covariance.

◆ FreeToBoundMatrix

Matrix type for mapping from free to bound track parameters.

◆ FreeToPathMatrix

Matrix type for mapping from free parameters to path length.

◆ FreeTrackParameters

FreeTrackParameters can hold any kind of charge.

◆ FreeVector

Vector type for free 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

◆ Intersection2D

Type alias for 2D intersection.

◆ Intersection3D

Type alias for 3D intersection.

◆ IntersectionIndex

using Acts::IntersectionIndex = std::uint8_t

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

◆ LayerVector

typedef std::vector< LayerPtr > Acts::LayerVector = std::vector<LayerPtr>

A vector of std::shared_ptr to layers.

◆ 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

◆ 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:136

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

◆ MultiIntersection2D

◆ MultiIntersection3D

◆ 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

◆ MutableSeedProxy2

◆ MutableSpacePointColumnProxy

template<typename T>
using Acts::MutableSpacePointColumnProxy = SpacePointColumnProxy<T, false>

◆ MutableSpacePointProxy2

◆ MutableTrackingVolumePtr

typedef std::shared_ptr< TrackingVolume > Acts::MutableTrackingVolumePtr = std::shared_ptr<TrackingVolume>

Shared pointer to a mutable TrackingVolume.

◆ MutableTrackingVolumeVector

Vector of shared pointers to mutable TrackingVolumes.

◆ MutableTrackStateTypeMap

◆ NavigationDelegate

Initial value:
Definition NavigationStream.hpp:155
Definition Delegate.hpp:29
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:691
Struct that serves as the argument to the navigation delegate.
Definition NavigationDelegate.hpp:24

Central alias for the navigation delegate.

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

◆ NeutralBoundTrackParameters

Initial value:
Track parameters bound to a reference surface for a single track.
Definition GenericBoundTrackParameters.hpp:39

Type alias for bound track parameters of neutral particles.

Track parameters for neutral particles in a bound coordinate system

◆ NeutralFreeTrackParameters

Initial value:
Track parameters not bound to a surface for a single track.
Definition GenericFreeTrackParameters.hpp:34

Type alias for free track parameters of neutral particles.

◆ 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 BoundSquareMatrix>(
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:

◆ RegularCylinderIndexGridNavigationPolicy

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

◆ RegularDiscIndexGrid

◆ RegularDiscIndexGridNavigationPolicy

◆ RegularPlaneIndexGrid

◆ RegularPlaneIndexGridNavigationPolicy

◆ RegularRingIndexGrid

◆ RegularRingIndexGridNavigationPolicy

◆ RemovePointer_t

template<typename T>
using Acts::RemovePointer_t = RemovePointer<T>::type

Helper type alias for removing pointer from type.

◆ SeedIndex2

using Acts::SeedIndex2 = std::uint32_t

◆ SerializedSubspaceIndices

using Acts::SerializedSubspaceIndices = std::uint64_t

Type alias for serialized subspace indices.

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

◆ SinglyChargedBoundTrackParameters

Initial value:

Type alias for bound track parameters of singly charged particles.

Track parameters defined in a local coordinate system for particles with charge ±1

◆ SinglyChargedFreeTrackParameters

Initial value:

Type alias for free track parameters of singly charged particles.

◆ SourceLinkSurfaceAccessor

Delegate to unpack the surface associated with a source link.

◆ SpacePointIndex2

using Acts::SpacePointIndex2 = std::uint32_t

◆ SpacePointIndexRange2

◆ SpacePointIndexSubset2

◆ SubspaceIndex

using Acts::SubspaceIndex = std::uint8_t

Type alias for subspace index.

◆ SubspaceIndices

template<std::size_t measdim>
using Acts::SubspaceIndices = std::array<SubspaceIndex, measdim>

Template alias for subspace indices array.

◆ SurfaceBoundFactory

Abrivation for a factory to construct surface bounds.

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

◆ SurfaceMatrix

using Acts::SurfaceMatrix = std::vector<SurfaceVector>

Matrix (2D vector) of pointers to constant Surface objects.

◆ SurfaceVector

typedef std::vector< const Surface * > Acts::SurfaceVector = std::vector<const Surface*>

Vector of pointers to constant Surface objects.

◆ TrackIndexType

using Acts::TrackIndexType = std::uint32_t

Type alias for track index values.

◆ TrackingGeometryMaterial

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

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

◆ TrackingVolumeArray

A BinnedArray of a std::shared_tr to a TrackingVolume.

◆ TrackingVolumeBoundaries

Type alias for collection of tracking volume boundaries.

◆ 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

◆ TrackingVolumeVector

typedef std::vector< TrackingVolumePtr > Acts::TrackingVolumeVector = std::vector<TrackingVolumePtr>

A std::vector of a std::shared_ptr to a TrackingVolume.

◆ TrackLinearizer

Initial value:
const BoundTrackParameters& params, double linPointTime,
const Surface& perigeeSurface, const Acts::GeometryContext& gctx,
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
GenericBoundTrackParameters< ParticleHypothesis > BoundTrackParameters
BoundTrackParameters can hold any kind of charge.
Definition TrackParameters.hpp:34

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

Note
Used for track fitting and vertexing.

◆ V3Matrix

using Acts::V3Matrix = std::vector<V3Vector>

Matrix (2D vector) of 3D vectors, used for storing grid-like collections of 3D points.

◆ V3Vector

using Acts::V3Vector = std::vector<Vector3>

Vector of 3D vectors, used for storing collections of 3D points.

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

◆ VolumeBoundFactory

Abrivation for a factory to construct volume bounds.

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

Enumerator
eAlignmentCenter0 
eAlignmentCenter1 
eAlignmentCenter2 
eAlignmentRotation0 
eAlignmentRotation1 
eAlignmentRotation2 
eAlignmentSize 

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

AxisY 
AxisZ 
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.

◆ BinningOption

flag for open/closed bins

Enumerator
open 
closed 

◆ 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
Enumerator
equidistant 
arbitrary 

◆ BoundarySurfaceFace

Enum to describe the position of the BoundarySurface respectively to the frame orientatin 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.

Enumerator
negativeFaceXY 
positiveFaceXY 
negativeFaceYZ 
positiveFaceYZ 
negativeFaceZX 
positiveFaceZX 
cylinderCover 
tubeInnerCover 
tubeOuterCover 
tubeSectorNegativePhi 
tubeSectorPositivePhi 
tubeSectorInnerCover 
tubeSectorOuterCover 
trapezoidFaceAlpha 
trapezoidFaceBeta 
index0 
index1 
index2 
index3 
index4 
index5 
index6 
index7 
index8 
index9 
index10 
index11 
undefinedFace 

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

Enumerator
eBoundLoc0 
eBoundLoc1 
eBoundPhi 
eBoundTheta 
eBoundQOverP 
eBoundTime 
eBoundSize 

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

Enumerator
ePos0 
ePos1 
ePos2 
eTime 
eMom0 
eMom1 
eMom2 
eEnergy 
eX 
eY 
eZ 

◆ DelegateType

enum class Acts::DelegateType
strong

Ownership enum for Delegate.

Enumerator
Owning 
NonOwning 

◆ DetectorMeasurementInfo

enum class Acts::DetectorMeasurementInfo : short
strong

Level of detector measurement information for seeding.

Enumerator
eDefault 
eDetailed 

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

Enumerator
eFreePos0 
eFreePos1 
eFreePos2 
eFreeTime 
eFreeDir0 
eFreeDir1 
eFreeDir2 
eFreeQOverP 
eFreeSize 

◆ HadronType

enum class Acts::HadronType
strong

Hadron type classification for B, C, strange and light hadrons.

Enumerator
Hadron 
BBbarMeson 
CCbarMeson 
BottomMeson 
BottomBaryon 
CharmedMeson 
CharmedBaryon 
StrangeMeson 
StrangeBaryon 
LightMeson 
LightBaryon 
Unknown 

◆ IntersectionStatus

enum class Acts::IntersectionStatus : int
strong

Status enum.

Enumerator
unreachable 
reachable 
onSurface 

◆ LayerType

For code readability, it distinguishes between different type of layers, which steers the behaviour in the navigation.

Enumerator
navigation 
passive 
active 

◆ 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.
Enumerator
eLinPos0 
eLinPos1 
eLinPos2 
eLinTime 
eLinPhi 
eLinTheta 
eLinQOverP 
eLinSize 
eLinPosSize 
eLinMomSize 

◆ MappingType

enum class Acts::MappingType : std::int8_t
strong

This enum describes the type of surface material mapping.

Enumerator
PreMapping 
Default 
PostMapping 
Sensor 

◆ 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
Enumerator
NoUpdate 
PreUpdate 
PostUpdate 
FullUpdate 

◆ 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
Enumerator
removeNoise 
addNoise 

◆ PdgParticle

enum Acts::PdgParticle : std::int32_t

Symbolic values for commonly used PDG particle numbers.

Enumerator
eInvalid 
eElectron 
eAntiElectron 
ePositron 
eMuon 
eAntiMuon 
eTau 
eAntiTau 
eGamma 
ePionZero 
ePionPlus 
ePionMinus 
eKaonPlus 
eKaonMinus 
eNeutron 
eAntiNeutron 
eProton 
eAntiProton 
eLead 
eJPsi 
eB0 
eBPlus 
eD0 
eDPlus 
eAntiB0 
eAntiD0 
eNeutrinoE 
eNeutrinoMu 
eNeutrinoTau 
eAntiNeutrinoE 
eAntiNeutrinoMu 
eAntiNeutrinoTau 

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

◆ SpacePointCandidateType

enum class Acts::SpacePointCandidateType : short
strong

Types of space point candidates for seeding.

Enumerator
eBottom 
eTop 

◆ SpacePointColumns

enum class Acts::SpacePointColumns : std::uint32_t
strong
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.

XY 

X and Y coordinates.

ZR 

Z and R coordinates.

XYZ 

X, Y, and Z coordinates.

XYZR 

X, Y, Z, and R coordinates.

VarianceZR 

Variance in Z and R directions.

Strip 

All strip-related 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
MeasurementFlag 
ParameterFlag 
OutlierFlag 
HoleFlag 
MaterialFlag 
SharedHitFlag 
SplitHitFlag 
NoExpectedHitFlag 
NumTrackStateFlags 
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

Enumerator
None 
Predicted 
Filtered 
Smoothed 
Jacobian 
Calibrated 
All 

◆ 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 (Can be removed for c++ 23).

Parameters
nThe number to take absolute value of
Returns
The absolute value of the input

◆ ACTS_DEFINE_ENUM_BITWISE_OPERATORS() [1/2]

Acts::ACTS_DEFINE_ENUM_BITWISE_OPERATORS ( MaterialUpdateMode )

◆ ACTS_DEFINE_ENUM_BITWISE_OPERATORS() [2/2]

Acts::ACTS_DEFINE_ENUM_BITWISE_OPERATORS ( SpacePointColumns )

◆ 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>
ActsMatrix< 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< ActsVector< nMeasurementDim >, ActsSquareMatrix< 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/R/37/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< ActsVector< nMeasurementDim >, ActsSquareMatrix< 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< ActsVector< nMeasurementDim >, ActsSquareMatrix< 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

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

◆ 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

◆ estimateTrackParamCovariance()

BoundMatrix Acts::estimateTrackParamCovariance ( const EstimateTrackParamCovarianceConfig & config,
const BoundVector & params,
bool hasTime )

Estimate the covariance matrix of the given track parameters based on the provided configuration.

The assumption is that we can model the uncertainty of the track parameters as a diagonal matrix with the provided initial sigmas. The inflation factors are used to inflate the initial variances based on the provided configuration. The uncertainty of q/p is estimated based on the relative uncertainty of the q/pt and the theta uncertainty.

Parameters
configis the configuration for the estimation
paramsis the track parameters
hasTimeis true if the track parameters have time
Returns
the covariance matrix of the track parameters

◆ estimateTrackParamsFromSeed() [1/3]

template<std::ranges::range spacepoint_range_t>
Result< BoundVector > Acts::estimateTrackParamsFromSeed ( const GeometryContext & gctx,
spacepoint_range_t spRange,
const Surface & surface,
const Vector3 & bField )

Estimate the full track parameters from three space points.

This method is based on the conformal map transformation. It estimates the full bound track parameters, i.e. (loc0, loc1, phi, theta, q/p, t) at the bottom space point. The bottom space is assumed to be the first element in the range defined by the iterators. It must lie on the surface provided for the representation of the bound track parameters. The magnetic field (which might be along any direction) is also necessary for the momentum estimation.

It resembles the method used in ATLAS for the track parameters estimated from seed, i.e. the function InDet::SiTrackMaker_xk::getAtaPlane here: https://acode-browser.usatlas.bnl.gov/lxr/source/athena/InnerGeometry/InDetRecTools/SiTrackMakerTool_xk/src/SiTrackMaker_xk.cxx

Template Parameters
spacepoint_iterator_tThe type of space point iterator
Parameters
gctxis the geometry context
spRangeis the range of space points
surfaceis the surface of the bottom space point. The estimated bound track parameters will be represented also at this surface
bFieldis the magnetic field vector
Returns
bound parameters

◆ estimateTrackParamsFromSeed() [2/3]

FreeVector Acts::estimateTrackParamsFromSeed ( const Vector3 & sp0,
const Vector3 & sp1,
const Vector3 & sp2,
const Vector3 & bField )

Estimate the full track parameters from three space points.

This method is based on the conformal map transformation. It estimates the full free track parameters, i.e. (x, y, z, t, dx, dy, dz, q/p) at the bottom space point. The bottom space is assumed to be the first element in the range defined by the iterators. The magnetic field (which might be along any direction) is also necessary for the momentum estimation.

This is a purely spatial estimation, i.e. the time parameter will be set to 0.

It resembles the method used in ATLAS for the track parameters estimated from seed, i.e. the function InDet::SiTrackMaker_xk::getAtaPlane here: https://acode-browser.usatlas.bnl.gov/lxr/source/athena/InnerGeometry/InDetRecTools/SiTrackMakerTool_xk/src/SiTrackMaker_xk.cxx

Template Parameters
spacepoint_iterator_tThe type of space point iterator
Parameters
sp0is the bottom space point
sp1is the middle space point
sp2is the top space point
bFieldis the magnetic field vector
Returns
the free parameters

◆ estimateTrackParamsFromSeed() [3/3]

template<std::ranges::range spacepoint_range_t>
FreeVector Acts::estimateTrackParamsFromSeed ( spacepoint_range_t spRange,
const Vector3 & bField )

Estimate the full track parameters from three space points.

This method is based on the conformal map transformation. It estimates the full free track parameters, i.e. (x, y, z, t, dx, dy, dz, q/p) at the bottom space point. The bottom space is assumed to be the first element in the range defined by the iterators. The magnetic field (which might be along any direction) is also necessary for the momentum estimation.

It resembles the method used in ATLAS for the track parameters estimated from seed, i.e. the function InDet::SiTrackMaker_xk::getAtaPlane here: https://acode-browser.usatlas.bnl.gov/lxr/source/athena/InnerGeometry/InDetRecTools/SiTrackMakerTool_xk/src/SiTrackMaker_xk.cxx

Template Parameters
spacepoint_iterator_tThe type of space point iterator
Parameters
spRangeis the range of space points
bFieldis the magnetic field vector
Returns
the free parameters

◆ 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

◆ 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

◆ fastHypot()

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

ActsMatrix< 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

◆ joinStrings() [1/3]

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/3]

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

Utility to join a range of formattable elements with a delimiter.

Note
This overload is selected if the range values are not directly convertible to std::string view, and need to be default-formatted first.
Parameters
valuesRange of values to join
delimiterDelimiter to insert between elements
Returns
Joined string

◆ joinStrings() [3/3]

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

◆ 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

◆ 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/8]

Acts::Vector3 Acts::operator* ( const Acts::Vector3 & value,
Direction dir )

Multiply Vector3 with Direction.

Parameters
valueVector3 to multiply
dirDirection value
Returns
Signed Vector3 result

◆ operator*() [2/8]

Acts::Vector3 Acts::operator* ( Direction dir,
const Acts::Vector3 & value )

Multiply Direction with Vector3.

Parameters
dirDirection value
valueVector3 to multiply
Returns
Signed Vector3 result

◆ operator*() [3/8]

double Acts::operator* ( Direction dir,
double value )
constexpr

Multiply Direction with double.

Parameters
dirDirection value
valueDouble to multiply
Returns
Signed double result

◆ operator*() [4/8]

float Acts::operator* ( Direction dir,
float value )
constexpr

Multiply Direction with float.

Parameters
dirDirection value
valueFloat to multiply
Returns
Signed float result

◆ operator*() [5/8]

int Acts::operator* ( Direction dir,
int value )
constexpr

Multiply Direction with integer.

Parameters
dirDirection value
valueInteger to multiply
Returns
Signed integer result

◆ operator*() [6/8]

double Acts::operator* ( double value,
Direction dir )
constexpr

Multiply double with Direction.

Parameters
valueDouble to multiply
dirDirection value
Returns
Signed double result

◆ operator*() [7/8]

float Acts::operator* ( float value,
Direction dir )
constexpr

Multiply float with Direction.

Parameters
valueFloat to multiply
dirDirection value
Returns
Signed float result

◆ operator*() [8/8]

int Acts::operator* ( int value,
Direction dir )
constexpr

Multiply integer with Direction.

Parameters
valueInteger to multiply
dirDirection value
Returns
Signed integer result

◆ operator*=() [1/4]

Acts::Vector3 & Acts::operator*= ( Acts::Vector3 & value,
Direction dir )

Multiply-assign Vector3 with Direction.

Parameters
valueVector3 reference to modify
dirDirection value
Returns
Reference to modified Vector3

◆ operator*=() [2/4]

double Acts::operator*= ( double & value,
Direction dir )
constexpr

Multiply-assign double with Direction.

Parameters
valueDouble reference to modify
dirDirection value
Returns
Reference to modified double

◆ operator*=() [3/4]

float Acts::operator*= ( float & value,
Direction dir )
constexpr

Multiply-assign float with Direction.

Parameters
valueFloat reference to modify
dirDirection value
Returns
Reference to modified float

◆ operator*=() [4/4]

int Acts::operator*= ( int & value,
Direction dir )
constexpr

Multiply-assign integer with Direction.

Parameters
valueInteger reference to modify
dirDirection value
Returns
Reference to modified integer

◆ operator<<() [1/32]

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/32]

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/32]

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/32]

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/32]

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/32]

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/32]

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/32]

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/32]

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/32]

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/32]

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/32]

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/32]

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/32]

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/32]

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/32]

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/32]

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

◆ operator<<() [18/32]

std::ostream & Acts::operator<< ( std::ostream & os,
Direction dir )

Stream operator for Direction.

Parameters
osOutput stream
dirDirection to output
Returns
Reference to output stream

◆ operator<<() [19/32]

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<<() [20/32]

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

◆ operator<<() [21/32]

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<<() [22/32]

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<<() [23/32]

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<<() [24/32]

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<<() [25/32]

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<<() [26/32]

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<<() [27/32]

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<<() [28/32]

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<<() [29/32]

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<<() [30/32]

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<<() [31/32]

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<<() [32/32]

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

◆ overloaded()

template<class... Ts>
Acts::overloaded ( Ts... ) ->overloaded< Ts... >

Deduction guide for overloaded visitor pattern.

◆ 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

◆ 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

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

◆ 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

◆ 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()

ActsMatrix< 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_spacepoint_t, typename callable_t>
LinCircle Acts::transformCoordinates ( Acts::SpacePointMutableData & mutableData,
const external_spacepoint_t & sp,
const external_spacepoint_t & spM,
bool bottom,
callable_t && extractFunction )

Transform a single spacepoint to u-v space coordinates.

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

◆ transformCoordinates() [2/2]

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

Transform a vector of spacepoints to u-v space circles with respect to a given middle spacepoint.

Template Parameters
external_spacepoint_tThe external spacepoint type.
Parameters
mutableDataContainer for mutable variables used in the seeding
[in]vecThe list of bottom or top spacepoints
[in]spMThe middle spacepoint.
[in]bottomShould be true if vec are bottom spacepoints.
[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

◆ 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_spacepoint_t>
bool Acts::xyzCoordinateCheck ( const Acts::SeedFinderConfig< external_spacepoint_t > & config,
const external_spacepoint_t & sp,
const double * spacepointPosition,
double * outputCoordinates )

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

Template Parameters
external_spacepoint_tThe external spacepoint type.
Parameters
[in]configSeedFinder config containing the delegates to the strip measurement details.
[in]spInput space point used in the check.
[in]spacepointPositionSpacepoint coordinates in xyz plane.
[out]outputCoordinatesThe output vector to write to.
Returns
Boolean that says if spacepoint 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

◆ AxisBound

auto Acts::AxisBound = AxisBoundaryTypeTag<AxisBoundaryType::Bound>{}
constexpr

Constant for bound boundary type axis.

◆ AxisClosed

auto Acts::AxisClosed = AxisBoundaryTypeTag<AxisBoundaryType::Closed>{}
constexpr

Constant for closed boundary type axis.

◆ AxisOpen

auto Acts::AxisOpen = AxisBoundaryTypeTag<AxisBoundaryType::Open>{}
constexpr

Convenience typedefs for AxisBoundaryTypeTag Constant for open boundary type axis.

◆ kBoundSubspaceIndicesInvalid

BoundSubspaceIndices Acts::kBoundSubspaceIndicesInvalid
staticconstexpr
Initial value:
= {
@ eBoundSize
Definition TrackParametrization.hpp:55

type alias for indices of bound track parameters subspace

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

◆ kMeasurementSizeMax

std::size_t Acts::kMeasurementSizeMax = eBoundSize
staticconstexpr

Maximum size of measurement dimension supported.

◆ kTrackIndexInvalid

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

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

◆ NoTime

float Acts::NoTime = std::numeric_limits<float>::quiet_NaN()
staticconstexpr

◆ PolygonDynamic

int Acts::PolygonDynamic = -1
constexpr

Tag to trigger specialization of a dynamic polygon.

◆ s_curvilinearProjTolerance

double Acts::s_curvilinearProjTolerance = 0.999995
staticconstexpr

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

◆ s_defaultPortalColor

Color Acts::s_defaultPortalColor {"#308c48"}
constexpr

Default color for portals.

◆ s_defaultSurfaceColor

Color Acts::s_defaultSurfaceColor {"#0000aa"}
constexpr

Default color for surfaces.

◆ s_defaultVolumColor

Color Acts::s_defaultVolumColor {"#ffaa00"}
constexpr

Default color for volumes.

◆ s_epsilon

double Acts::s_epsilon = 3 * std::numeric_limits<double>::epsilon()
staticconstexpr

Tolerance for being numerical equal for geometry building.

◆ s_maximumNumberOfIntersections

IntersectionIndex Acts::s_maximumNumberOfIntersections = 2
staticconstexpr

◆ s_noBounds

const InfiniteBounds Acts::s_noBounds {}
static

◆ 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_planeXY

const Transform3 Acts::s_planeXY = Transform3::Identity()
static

◆ 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:94

◆ 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()

◆ s_viewFiltered

ViewConfig Acts::s_viewFiltered = {.color = {255, 255, 0}}
static

◆ s_viewGrid

const ViewConfig Acts::s_viewGrid = {.color = {220, 0, 0}}
static

◆ s_viewLine

const ViewConfig Acts::s_viewLine = {.color = {0, 0, 220}}
static

◆ s_viewMeasurement

ViewConfig Acts::s_viewMeasurement = {.color = {255, 102, 0}}
static

◆ s_viewParameter

ViewConfig Acts::s_viewParameter = {.color = {0, 0, 255}}
static

◆ s_viewPassive

const ViewConfig Acts::s_viewPassive = {.color = {240, 280, 0}}
static

◆ s_viewPortal

const ViewConfig Acts::s_viewPortal = {.color = Color{"#308c48"}}
static

◆ s_viewPredicted

ViewConfig Acts::s_viewPredicted = {.color = {51, 204, 51}}
static

◆ s_viewSensitive

const ViewConfig Acts::s_viewSensitive = {.color = {0, 180, 240}}
static

◆ s_viewSmoothed

ViewConfig Acts::s_viewSmoothed = {.color = {0, 102, 25}}
static

◆ s_viewSurface

const ViewConfig Acts::s_viewSurface = {.color = {170, 170, 170}}
static

◆ s_viewVolume

const ViewConfig Acts::s_viewVolume = {.color = {220, 220, 0}}
static

◆ SupportsBoundParameters_v

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

Variable template for checking bound parameters support.

◆ Type

template<typename T>
TypeTag<T> Acts::Type
constexpr

Convenience variable for creating TypeTag instances.

◆ zeroEnvelope

Envelope Acts::zeroEnvelope = {0, 0}
constexpr

Zero envelope constant for no extension.