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

Contains code that is not considered stable yet and might change. More...

Classes

class  BarrelEndcapAssembler
 Fluent builder that assembles a combined barrel + endcap subdetector into a CylinderContainerBlueprintNode arranged along the Z axis. More...
class  Blueprint
 This class is the top-level entry point to build a tracking geometry using the blueprint building mechanism. More...
class  BlueprintBuilder
 High-level builder that converts a backend detector element hierarchy into a blueprint node tree. More...
class  BlueprintNode
 Base class for all nodes in the blueprint tree. More...
struct  BlueprintOptions
 Options controlling blueprint navigation policies. More...
struct  BoundParameterVariationGenerator
 Base class for generating bound parameter variations. More...
class  CompositeSpacePointLineFitter
 Generic Implementation to fit a straight line to set of composite space point measurements. More...
class  CompositeSpacePointLineSeeder
 Initial line parameters from a pattern recognition like the Hough transform are often not suitable for a line fit as the resolution of the hough bins usually exceeds the size of the straws. More...
class  ContainerBlueprintNode
 A blueprint node that can contain multiple child volumes. More...
struct  CovarianceBoundParameterVariationGenerator
 Generator for bound parameter variations based on the covariance. More...
class  CuboidContainerBlueprintNode
 Container blueprint node stacking cuboid volumes. More...
class  CylinderContainerBlueprintNode
 Container blueprint node stacking cylindrical volumes. More...
class  CylindricalSpacePointKDTree
 A cylindrical space point KD-tree used for seeding in a cylindrical detector geometry. More...
class  CylindricalSpacePointKDTreeBuilder
 Builder for cylindrical space point KD-trees. More...
struct  DeltaBoundParameterVariationGenerator
 Generator for bound parameter variations based on fixed deltas. More...
class  Efficiency
 Multi-dimensional efficiency histogram using boost::histogram. More...
class  ElementLayerAssembler
 Fluent builder that assembles a flat collection of cylindrical or disc-like detector layers from layer-representative detector elements into a CylinderContainerBlueprintNode. More...
class  FrustumNavigationPolicy
 A navigation policy that uses frustum-octree intersections to find portals. More...
struct  GbtsAdaptiveTauRatioCuts
 Tau ratio tolerances for assignAdaptiveTauRatioCuts. More...
struct  GbtsBinGroup
 The outer eta bins reachable from one inner eta bin. More...
 One outer eta bin reachable from an inner one, with the cuts the layer pair they belong to carries. More...
class  GbtsGeometry
 Geometry helper built from layers and connectors. More...
struct  GbtsGraph
 The doublet graph of the GBTS workflow, as built by GbtsGraphBuilder. More...
class  GbtsGraphBuilder
 Builds the doublet graph of the GBTS workflow. More...
struct  GbtsLayerBinning
 The eta binning GbtsGeometry gave one layer. More...
struct  GbtsLayerConfig
 A GBTS layer and the detector surfaces it is made of. More...
struct  GbtsLayerConnection
 A pair of layers the seeder may build a graph edge between. More...
class  GbtsLayerConnectionTool
 Builds the GBTS layer connection table from observed track hits. More...
struct  GbtsLayerDescription
 Lightweight layer description for GBTS geometry. More...
class  GbtsNodeStorage
 Storage for the GBTS graph nodes. More...
class  GbtsRoiDescriptor
 GBTS region of interest, as the eta and z bounds the seeder cuts on. More...
struct  GbtsSeedFit
 Fit of the GBTS tracking filter to a seed, at its innermost space point. More...
struct  GbtsTauBounds
 Accepted |cot(theta)| range for one cluster width bin. More...
class  GbtsTrackingFilter
 Tracking filter operating on the GBTS edge graph. More...
struct  GbtsZ0Range
 z0 range two eta bins must share a trajectory within, which fixes the bin table. More...
class  GeometryIdentifierBlueprintNode
 Blueprint node for configuring and applying geometry identifiers to volumes. More...
class  GraphBasedTrackSeeder
 Seed finder implementing the GBTS seeding workflow. More...
class  Gx2Fitter
 Global Chi Square fitter (GX2F) implementation. More...
struct  Gx2FitterExtensions
 Extension struct which holds delegates to customise the GX2F behaviour. More...
struct  Gx2FitterOptions
 Combined options for the Global-Chi-Square fitter. More...
struct  Gx2FitterResult
 Result container for a global chi-square fit. More...
struct  Gx2fSystem
 A container to manage all properties of a gx2f system. More...
class  Histogram
 Multi-dimensional histogram wrapper using boost::histogram for data collection. More...
class  HoughAccumulatorSection
 helper class for adaptive traversal of HT space More...
struct  HoughExplorationOptions
 structure that keeps HT space traversal options More...
class  LayerBlueprintNode
 The layer node is essentially an auto-sizing wrapper around a set of surfaces. More...
class  MaterialDesignatorBlueprintNode
 This node type registers material proxies into its child volume during the blueprint construction. More...
class  MultiLayerNavigationPolicy
 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  MultiWireVolumeBuilder
 A class to build multiwire tracking volumes (e.g wire chambers). More...
class  PadBlueprintNode
 Wraps a single child blueprint node and pads it into a larger volume whose dimensions are evaluated at construction time using the child's extent plus a configurable envelope. More...
class  PortalDesignatorBlueprintNode
 This node type assigns string tags to specific portal faces of its child volume during the blueprint construction. More...
class  ProfileHistogram
 Multi-dimensional profile histogram using boost::histogram. More...
class  ReferenceTrajectoryBuilder
 Reference trajectory implementation. More...
struct  ReferenceTrajectoryBuilderOptions
struct  ReferenceTrajectoryBuilderResult
 The result struct for the reference trajectory builder actor. More...
class  RiddersStepper
 RiddersStepper implements the Ridders method for numerical differentiation to compute the Jacobian of the bound to bound transformation. More...
struct  ScatteringProperties
 A container to store scattering properties for each material surface. More...
class  SensorLayer
 Fluent builder that assembles a single cylindrical or disc-like detector layer directly from sensor elements, returning a LayerBlueprintNode (no container wrapper). More...
class  SensorLayerAssembler
 Fluent builder that assembles multiple cylindrical or disc-like detector layers directly from sensor elements into a CylinderContainerBlueprintNode. More...
class  SphericalSpacePointGrid
 A spherical space point grid for seeding, binned in (phi, eta, r). More...
class  StaticBlueprintNode
 The static blueprint node wraps a single already-constructred TrackingVolume. More...
class  TryAllNavigator
 Alternative Navigator which tries all possible intersections. More...

Concepts

concept  CompositeSpacePoint
 Concept definition of the station space points.
concept  CompositeSpacePointCalibrator
 Interface concept for a CompositeSpacePointCalibrator.
concept  CompositeSpacePointContainer
 Define the CompositeSpacePointContainer concept as any std::container over a collection of CompositeSpacePoint pointers.
concept  CompositeSpacePointFastCalibrator
 Interface concept to define the straw measurement calibrator used by the FastStrawLineFitter.
concept  CompositeSpacePointPtr
 Define the space point pointer concept as an ordinary / smart pointer over space points.

Typedefs

using AxisVariant
 Boost axis variant supporting variable, regular, and log-scale axes with metadata.
using BoostHist
 Underlying Boost type for Histogram.
using BoostLogAxis
 Logarithmic-scale histogram axis with string metadata.
using BoostProfileHist
 Underlying Boost type for ProfileHistogram.
using BoostRegularAxis
 Regular-width histogram axis with string metadata.
using BoostVariableAxis = boost::histogram::axis::variable<double, std::string>
 Variable-width histogram axis with string metadata.
using BoundParameterVariation = std::vector<std::pair<std::size_t, double>>
 Collection of bound parameter variations, each entry is a pair of the index of the bound parameter.
using Efficiency1 = Efficiency<1>
 Type aliases for common dimensions.
using Efficiency2 = Efficiency<2>
 2D efficiency histogram
using GbtsExperimentLayerId = std::uint32_t
 Layer id as the experiment numbers it (80000, 81000, ...).
using GbtsLayerIndex = std::uint16_t
 Position of a layer within one GbtsGeometry, dense from zero.
using GbtsTauLookupTable = std::vector<GbtsTauBounds>
 Tau bounds per cluster width, one entry per 0.05 mm, indexed not searched.
using Histogram1 = Histogram<1>
 Type aliases for common dimensions.
using Histogram2 = Histogram<2>
 2D histogram
using Histogram3 = Histogram<3>
 3D histogram
using ProfileHistogram1 = ProfileHistogram<1>
 Type aliases for common dimensions.

Enumerations

enum class  GbtsLayerTechnology : std::uint8_t { Pixel = 0 , Strip = 1 }
 Sensor technology of a GBTS layer, independent of GbtsLayerType.
enum class  GbtsLayerType : std::uint8_t { Barrel = 0 , Endcap = 1 }
 Where a GBTS layer sits, which fixes its coordinate convention.
enum class  GlobalChiSquareFitterError { GlobalChiSquareFitterError::AIsNotInvertible = 1 , GlobalChiSquareFitterError::DidNotConverge = 2 , GlobalChiSquareFitterError::NotEnoughMeasurements = 3 , GlobalChiSquareFitterError::UpdatePushedToNewVolume = 4 }
 Error codes for global chi-square fitter operations. More...

Functions

template<typename track_state_t>
void addMaterialToGx2fSums (Gx2fSystem &extendedSystem, const std::size_t nMaterialsHandled, const std::unordered_map< GeometryIdentifier, ScatteringProperties > &scatteringMap, const track_state_t &trackState, const Logger &logger)
 Process material and fill the aMatrix and bVector.
template<std::size_t kMeasDim, typename track_state_t>
void addMeasurementToGx2fSums (Gx2fSystem &extendedSystem, const std::vector< BoundMatrix > &jacobianFromStart, const track_state_t &trackState, const Logger &logger)
 Process measurements and fill the aMatrix and bVector.
void addMeasurementToGx2fSumsBackend (Gx2fSystem &extendedSystem, const std::vector< BoundMatrix > &jacobianFromStart, const Eigen::MatrixXd &covarianceMeasurement, const BoundVector &predicted, const Eigen::VectorXd &measurement, const Eigen::MatrixXd &projector, const Logger &logger)
 Adds a measurement to the GX2F equation system in a modular backend function.
void assignAdaptiveTauRatioCuts (std::span< GbtsLayerConnection > connections, std::span< const GbtsLayerDescription > layers, const GbtsAdaptiveTauRatioCuts &cuts={})
 Fill the tau ratio tolerances of the layer pairs.
Eigen::VectorXd computeGx2fDeltaParams (const Gx2fSystem &extendedSystem)
 Solve the gx2f system to get the delta parameters for the update.
template<TrackProxyConcept track_proxy_t>
std::size_t countMaterialStates (const track_proxy_t track, const std::unordered_map< GeometryIdentifier, ScatteringProperties > &scatteringMap, const Logger &logger)
 Count the valid material states in a track for scattering calculations.
template<typename Measurement>
void exploreHoughParametersSpace (std::vector< HoughAccumulatorSection > &sectionsStack, const std::vector< Measurement > &measurements, const HoughExplorationOptions< Measurement > &opt, std::vector< HoughAccumulatorSection > &results)
 function that walks through the section splitting them (depth-first) and
std::vector< double > extractBinEdges (const AxisVariant &axis)
 Extract bin edges from an AxisVariant.
template<TrackProxyConcept track_proxy_t>
void fillGx2fSystem (const track_proxy_t track, Gx2fSystem &extendedSystem, const bool multipleScattering, const std::unordered_map< GeometryIdentifier, ScatteringProperties > &scatteringMap, std::vector< GeometryIdentifier > &geoIdVector, const Logger &logger)
 Fill the GX2F system with data from a track.
std::optional< FreeVector > freeParametersFromGbtsSeedFit (const GbtsSeedFit &fit, const Vector3 &bField)
 Estimate free track parameters from the fit of the GBTS tracking filter.
void from_json (const nlohmann::json &j, GbtsLayerConfig &layer)
 Convert JSON to GbtsLayerConfig.
void from_json (const nlohmann::json &j, GbtsLayerConnection &connection)
 Convert JSON to GbtsLayerConnection.
void from_json (const nlohmann::json &j, GbtsTauBounds &bounds)
 Convert JSON to GbtsTauBounds.
std::error_code make_error_code (Acts::Experimental::GlobalChiSquareFitterError e)
 Converts error code to std::error_code.
template<typename Measurement, typename Functor>
bool passIntersectionsCheck (const HoughAccumulatorSection &section, const std::vector< Measurement > &measurements, const Functor &lineFunctor, const std::uint32_t threshold)
 Helper for fast check if there is enough line crossings within HoughAccumulatorSection.
Histogram1 projectionX (const Histogram2 &hist2d)
 Project a 2D histogram onto the X axis (axis 0).
Histogram1 projectionY (const Histogram2 &hist2d)
 Project a 2D histogram onto the Y axis (axis 1).
std::vector< GbtsLayerConnection > readGbtsConnections (const std::filesystem::path &path)
 Read the layer connections from a connection table file.
std::vector< GbtsLayerConfig > readGbtsLayers (const std::filesystem::path &path)
 Read the GBTS layers and their surfaces from a layer map file.
GbtsTauLookupTable readGbtsTauLookupTable (const std::filesystem::path &path)
 Read the tau lookup table of the cluster width cuts.
void to_json (nlohmann::json &j, const GbtsLayerConfig &layer)
 Convert GbtsLayerConfig to JSON.
void to_json (nlohmann::json &j, const GbtsLayerConnection &connection)
 Convert GbtsLayerConnection to JSON.
void to_json (nlohmann::json &j, const GbtsTauBounds &bounds)
 Convert GbtsTauBounds to JSON.
void updateGx2fCovarianceParams (BoundMatrix &fullCovariancePredicted, Gx2fSystem &extendedSystem)
 Calculate and update the covariance of the fitted parameters.
void updateGx2fParams (BoundTrackParameters &params, const Eigen::VectorXd &deltaParamsExtended, const std::size_t nMaterialSurfaces, std::unordered_map< GeometryIdentifier, ScatteringProperties > &scatteringMap, const std::vector< GeometryIdentifier > &geoIdVector)
 Update parameters (and scattering angles if applicable).
void writeGbtsConnections (const std::filesystem::path &path, const std::vector< GbtsLayerConnection > &connections)
 Write layer connections to a connection table file.

Detailed Description

Contains code that is not considered stable yet and might change.

Longer desc

Typedef Documentation

◆ AxisVariant

Initial value:
boost::histogram::axis::variant<BoostVariableAxis, BoostRegularAxis,
boost::histogram::axis::regular< double, boost::histogram::axis::transform::log, std::string > BoostLogAxis
Logarithmic-scale histogram axis with string metadata.
Definition Histogram.hpp:34
boost::histogram::axis::variable< double, std::string > BoostVariableAxis
Variable-width histogram axis with string metadata.
Definition Histogram.hpp:28
boost::histogram::axis::regular< double, boost::histogram::use_default, std::string > BoostRegularAxis
Regular-width histogram axis with string metadata.
Definition Histogram.hpp:30

Boost axis variant supporting variable, regular, and log-scale axes with metadata.

Note
It seems not to be possible to combine compile-time fixed number of axes with boost::histogram::axis::variant. Therefore we use std::vector<AxisVariant> internally.

◆ BoostHist

Initial value:
decltype(boost::histogram::make_weighted_histogram(
std::declval<std::vector<AxisVariant>>()))

Underlying Boost type for Histogram.

Weighted-sum accumulator, so every bin carries a content and a variance.

◆ BoostLogAxis

Initial value:
boost::histogram::axis::regular<
double, boost::histogram::axis::transform::log, std::string>

Logarithmic-scale histogram axis with string metadata.

◆ BoostProfileHist

Initial value:
decltype(boost::histogram::make_profile(
std::declval<std::vector<AxisVariant>>()))

Underlying Boost type for ProfileHistogram.

◆ BoostRegularAxis

Initial value:
boost::histogram::axis::regular<double, boost::histogram::use_default,
std::string>

Regular-width histogram axis with string metadata.

◆ GbtsExperimentLayerId

Layer id as the experiment numbers it (80000, 81000, ...).

Sparse, and an index into nothing.

◆ GbtsLayerIndex

using Acts::Experimental::GbtsLayerIndex = std::uint16_t

Position of a layer within one GbtsGeometry, dense from zero.

Ask GbtsGeometry::layerIndex for it rather than deriving it.

Function Documentation

◆ assignAdaptiveTauRatioCuts()

void Acts::Experimental::assignAdaptiveTauRatioCuts ( std::span< GbtsLayerConnection > connections,
std::span< const GbtsLayerDescription > layers,
const GbtsAdaptiveTauRatioCuts & cuts = {} )

Fill the tau ratio tolerances of the layer pairs.

A pair is widened by tauRatioCorr if it skips a pixel barrel layer, or, as an outer pair, if it leaves the pixel barrel. A pair with a strip layer is widened by tauRatioCorrStrip on top.

Parameters
connectionsThe layer pairs, whose tolerances are overwritten
layersThe layers the geometry is built from
cutsThe tolerances to assign

◆ exploreHoughParametersSpace()

template<typename Measurement>
void Acts::Experimental::exploreHoughParametersSpace ( std::vector< HoughAccumulatorSection > & sectionsStack,
const std::vector< Measurement > & measurements,
const HoughExplorationOptions< Measurement > & opt,
std::vector< HoughAccumulatorSection > & results )

function that walks through the section splitting them (depth-first) and

Template Parameters
Measurement- type of measurements
Functor- for translation from measurements to Hough space
Parameters
sectionsStack- the stacks to consider
measurements- measurements to which indices are kept in HoughAccumulatorSection
opt- exploration directives
results- sectoins that satisfied acceptance criteria

◆ extractBinEdges()

std::vector< double > Acts::Experimental::extractBinEdges ( const AxisVariant & axis)

Extract bin edges from an AxisVariant.

Works with all axis types (regular, variable, log) in the variant by accessing the generic axis interface.

Parameters
axisThe axis variant to extract edges from
Returns
Vector of bin edges (size = nBins + 1)

◆ freeParametersFromGbtsSeedFit()

std::optional< FreeVector > Acts::Experimental::freeParametersFromGbtsSeedFit ( const GbtsSeedFit & fit,
const Vector3 & bField )

Estimate free track parameters from the fit of the GBTS tracking filter.

The momentum uses the field bending the seed in the transverse plane, Bz - cot(theta) * Bt, with Bt the transverse field along the seed.

Parameters
fitFit of the tracking filter
bFieldMagnetic field at a point along the seed
Returns
Free track parameters, or nothing without a bending field

◆ make_error_code()

std::error_code Acts::Experimental::make_error_code ( Acts::Experimental::GlobalChiSquareFitterError e)

Converts error code to std::error_code.

Parameters
eError code to convert
Returns
std::error_code for the given error

◆ passIntersectionsCheck()

template<typename Measurement, typename Functor>
bool Acts::Experimental::passIntersectionsCheck ( const HoughAccumulatorSection & section,
const std::vector< Measurement > & measurements,
const Functor & lineFunctor,
const std::uint32_t threshold )

Helper for fast check if there is enough line crossings within HoughAccumulatorSection.

Template Parameters
Measurement
Functor
Parameters
section- section to rest against
measurements- vector of measurements
lineFunctor- the function defining line
threshold- number of crossings required for positive decision (it is provided so early exit can be implemented)
Returns
true if the check passes

◆ projectionX()

Histogram1 Acts::Experimental::projectionX ( const Histogram2 & hist2d)

Project a 2D histogram onto the X axis (axis 0).

Parameters
hist2dThe 2D histogram to project
Returns
A 1D histogram containing the projection
Note
Unlike ROOT's TH2::ProjectionX, the sum runs over the under- and overflow bins of the Y axis as well.

◆ projectionY()

Histogram1 Acts::Experimental::projectionY ( const Histogram2 & hist2d)

Project a 2D histogram onto the Y axis (axis 1).

Parameters
hist2dThe 2D histogram to project
Returns
A 1D histogram containing the projection
Note
Unlike ROOT's TH2::ProjectionY, the sum runs over the under- and overflow bins of the X axis as well.