ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::SeedFinderConfig< SpacePoint > Struct Template Reference

Structure that holds configuration parameters for the seed finder algorithm. More...

#include <Acts/Seeding/SeedFinderConfig.hpp>

Inheritance diagram for Acts::SeedFinderConfig< SpacePoint >:
[legend]
Collaboration diagram for Acts::SeedFinderConfig< SpacePoint >:
[legend]

Public Member Functions

SeedFinderConfig calculateDerivedQuantities () const
 Calculate derived quantities from the current configuration.

Static Public Member Functions

static bool noopExperimentCuts (const SpacePoint &, const SpacePoint &, float, bool)
 defaults experimental cuts to no operation in both seeding algorithms
static bool voidSpacePointSelector (const SpacePoint &sp)
 Default space point selector that accepts all space points.

Public Attributes

float binSizeR = 1. * UnitConstants::mm
 Radial bin size used in space-point grid.
SeedConfirmationRangeConfig centralSeedConfirmationRange
 Contains parameters for central seed confirmation.
float collisionRegionMax = +150 * UnitConstants::mm
 Maximum z extent of collision region for doublet validation.
float collisionRegionMin = -150 * UnitConstants::mm
 Limiting location of collision region in z-axis used to check if doublet origin is within reasonable bounds.
float cotThetaMax = 10.01788
 Maximum allowed cotTheta between two space-points in doublet, used to check if forward angle is within bounds.
float deltaRMax = 270 * UnitConstants::mm
 Maximum radial distance between two doublet components (prefer deltaRMaxTopSP and deltaRMacBottomSP to set separate values for outer and inner space-points).
float deltaRMaxBottomSP = std::numeric_limits<float>::quiet_NaN()
 Maximum radial distance between inner-middle doublet components.
float deltaRMaxTopSP = std::numeric_limits<float>::quiet_NaN()
 Maximum radial distance between middle-outer doublet components.
float deltaRMiddleMaxSPRange = 10. * UnitConstants::mm
 Maximum delta R for variable middle SP range calculation.
float deltaRMiddleMinSPRange = 10. * UnitConstants::mm
 If useVariableMiddleSPRange is true, the radial range will be calculated based on the maximum and minimum r values of the space-points in the event and a deltaR (deltaRMiddleMinSPRange, deltaRMiddleMaxSPRange).
float deltaRMin = 5 * UnitConstants::mm
 Seeding parameters used to define the cuts on space-point doublets.
float deltaRMinBottomSP = std::numeric_limits<float>::quiet_NaN()
 Minimum radial distance between inner-middle doublet components.
float deltaRMinTopSP = std::numeric_limits<float>::quiet_NaN()
 Minimum radial distance between middle-outer doublet components.
float deltaZMax = std::numeric_limits<float>::infinity() * UnitConstants::mm
 Maximum value of z-distance between space-points in doublet.
Delegate< bool(const SpacePoint &, const SpacePoint &, float, bool)> experimentCuts {DelegateFuncTag<&noopExperimentCuts>{}}
 Delegate to apply experiment specific cuts during doublet finding.
SeedConfirmationRangeConfig forwardSeedConfirmationRange
 Contains parameters for forward seed confirmation.
float helixCutTolerance = 1.
 Parameter which can loosen the tolerance of the track seed to form a helix.
float highland = 0
 derived values, set on SeedFinder construction
float impactMax = 20. * UnitConstants::mm
 Maximum value of impact parameter estimation of the seed candidates.
bool interactionPointCut = false
 Enable cut on the compatibility between interaction point and doublet, this is an useful approximation to speed up the seeding.
bool isInInternalUnits = true
 Flag indicating whether configuration uses ACTS internal units.
int maxBlockSize = 1024
 only for Cuda plugin
float maxPtScattering = 10 * UnitConstants::GeV
 Maximum transverse momentum for scattering calculation.
float maxScatteringAngle2 = 0
 Squared maximum scattering angle for track validation.
unsigned int maxSeedsPerSpM = 5
 Maximum number (minus one) of accepted seeds per middle space-point.
float minPt = 400. * UnitConstants::MeV
 Seeding parameters used to define the cuts on space-point triplets.
int nAvgTrplPerSpBLimit = 2
 Average triplet limit per space-point bin for CUDA.
int nTrplPerSpBLimit = 100
 Maximum number of triplets per space-point bin for CUDA.
float phiMax = std::numbers::pi_v<float>
 Maximum phi angle for space-point selection.
float phiMin = -std::numbers::pi_v<float>
 Seeding parameters used in the space-point grid creation and bin finding.
float radLengthPerSeed = 0.05
 Term that accounts for the thickness of scattering medium in radiation lengths in the Lynch & Dahl correction to the Highland equation default is 5% TODO: necessary to make amount of material dependent on detector region?
float rAlign = 0 * UnitConstants::mm
 Radial alignment uncertainty for space-point uncertainties.
float rMax = 600 * UnitConstants::mm
 Maximum radius for space-point selection.
float rMaxMiddle = 120.f * UnitConstants::mm
 Maximum radius for middle space-point selection.
float rMin = 33 * UnitConstants::mm
 WARNING: if rMin is smaller than impactMax, the bin size will be 2*pi, which will make seeding very slow!
float rMinMiddle = 60.f * UnitConstants::mm
 Seeding parameters used to define the region of interest for middle space-point.
std::vector< std::vector< float > > rRangeMiddleSP
 Range defined in vector for each z bin.
bool seedConfirmation = false
 Seeding parameters used for quality seed confirmation.
std::shared_ptr< SeedFilter< SpacePoint > > seedFilter
 Shared pointer to the seed filter for quality assessment.
float sigmaError = 5
 used for measurement (+alignment) uncertainties.
float sigmaScattering = 5
 Number of sigmas of scattering angle to be considered in the minimum pT scattering term.
Delegate< bool(const SpacePoint &)> spacePointSelector
 Delegate function for space-point selection filtering.
float toleranceParam = 1.1 * UnitConstants::mm
 Tolerance parameter used to check the compatibility of space-point coordinates in xyz.
bool useDetailedDoubleMeasurementInfo = false
 Delegates for accessors to detailed information on double measurement that produced the space point.
bool useVariableMiddleSPRange = false
 If useVariableMiddleSPRange is set to false, the vector rRangeMiddleSP can be used to define a fixed r range for each z bin: {{rMin, rMax}, ...}.
float zAlign = 0 * UnitConstants::mm
 Other parameters.
std::vector< float > zBinEdges
 Vector containing the z-bin edges for non equidistant binning in z.
std::vector< std::size_t > zBinsCustomLooping = {}
 Order of z bins to loop over when searching for SPs.
float zMax = 2800 * UnitConstants::mm
 Maximum z coordinate for space-point selection.
float zMin = -2800 * UnitConstants::mm
 Minimum z coordinate for space-point selection.

Detailed Description

template<typename SpacePoint>
struct Acts::SeedFinderConfig< SpacePoint >

Structure that holds configuration parameters for the seed finder algorithm.

Member Function Documentation

◆ calculateDerivedQuantities()

template<typename SpacePoint>
SeedFinderConfig Acts::SeedFinderConfig< SpacePoint >::calculateDerivedQuantities ( ) const

Calculate derived quantities from the current configuration.

Returns
A new configuration with derived quantities calculated

◆ noopExperimentCuts()

template<typename SpacePoint>
bool Acts::SeedFinderConfig< SpacePoint >::noopExperimentCuts ( const SpacePoint & ,
const SpacePoint & ,
float ,
bool  )
static

defaults experimental cuts to no operation in both seeding algorithms

Returns
Always returns true (no cuts applied)

◆ voidSpacePointSelector()

template<typename SpacePoint>
bool Acts::SeedFinderConfig< SpacePoint >::voidSpacePointSelector ( const SpacePoint & sp)
static

Default space point selector that accepts all space points.

Parameters
spThe space point to evaluate (unused)
Returns
Always returns true (accepts all space points)

Member Data Documentation

◆ binSizeR

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::binSizeR = 1. * UnitConstants::mm

Radial bin size used in space-point grid.

◆ centralSeedConfirmationRange

template<typename SpacePoint>
SeedConfirmationRangeConfig Acts::SeedFinderConfig< SpacePoint >::centralSeedConfirmationRange

Contains parameters for central seed confirmation.

◆ collisionRegionMax

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::collisionRegionMax = +150 * UnitConstants::mm

Maximum z extent of collision region for doublet validation.

◆ collisionRegionMin

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::collisionRegionMin = -150 * UnitConstants::mm

Limiting location of collision region in z-axis used to check if doublet origin is within reasonable bounds.

◆ cotThetaMax

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::cotThetaMax = 10.01788

Maximum allowed cotTheta between two space-points in doublet, used to check if forward angle is within bounds.

◆ deltaRMax

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::deltaRMax = 270 * UnitConstants::mm

Maximum radial distance between two doublet components (prefer deltaRMaxTopSP and deltaRMacBottomSP to set separate values for outer and inner space-points).

◆ deltaRMaxBottomSP

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::deltaRMaxBottomSP = std::numeric_limits<float>::quiet_NaN()

Maximum radial distance between inner-middle doublet components.

◆ deltaRMaxTopSP

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::deltaRMaxTopSP = std::numeric_limits<float>::quiet_NaN()

Maximum radial distance between middle-outer doublet components.

◆ deltaRMiddleMaxSPRange

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::deltaRMiddleMaxSPRange = 10. * UnitConstants::mm

Maximum delta R for variable middle SP range calculation.

◆ deltaRMiddleMinSPRange

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::deltaRMiddleMinSPRange = 10. * UnitConstants::mm

If useVariableMiddleSPRange is true, the radial range will be calculated based on the maximum and minimum r values of the space-points in the event and a deltaR (deltaRMiddleMinSPRange, deltaRMiddleMaxSPRange).

◆ deltaRMin

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::deltaRMin = 5 * UnitConstants::mm

Seeding parameters used to define the cuts on space-point doublets.

Minimum radial distance between two doublet components (prefer deltaRMinTopSP and deltaRMinBottomSP to set separate values for outer and inner space-points)

◆ deltaRMinBottomSP

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::deltaRMinBottomSP = std::numeric_limits<float>::quiet_NaN()

Minimum radial distance between inner-middle doublet components.

◆ deltaRMinTopSP

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::deltaRMinTopSP = std::numeric_limits<float>::quiet_NaN()

Minimum radial distance between middle-outer doublet components.

◆ deltaZMax

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::deltaZMax = std::numeric_limits<float>::infinity() * UnitConstants::mm

Maximum value of z-distance between space-points in doublet.

◆ experimentCuts

template<typename SpacePoint>
Delegate<bool(const SpacePoint& , const SpacePoint& , float , bool )> Acts::SeedFinderConfig< SpacePoint >::experimentCuts {DelegateFuncTag<&noopExperimentCuts>{}}

Delegate to apply experiment specific cuts during doublet finding.

◆ forwardSeedConfirmationRange

template<typename SpacePoint>
SeedConfirmationRangeConfig Acts::SeedFinderConfig< SpacePoint >::forwardSeedConfirmationRange

Contains parameters for forward seed confirmation.

◆ helixCutTolerance

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::helixCutTolerance = 1.

Parameter which can loosen the tolerance of the track seed to form a helix.

This is useful for e.g. misaligned seeding.

◆ highland

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::highland = 0

derived values, set on SeedFinder construction

◆ impactMax

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::impactMax = 20. * UnitConstants::mm

Maximum value of impact parameter estimation of the seed candidates.

◆ interactionPointCut

template<typename SpacePoint>
bool Acts::SeedFinderConfig< SpacePoint >::interactionPointCut = false

Enable cut on the compatibility between interaction point and doublet, this is an useful approximation to speed up the seeding.

◆ isInInternalUnits

template<typename SpacePoint>
bool Acts::SeedFinderConfig< SpacePoint >::isInInternalUnits = true

Flag indicating whether configuration uses ACTS internal units.

◆ maxBlockSize

template<typename SpacePoint>
int Acts::SeedFinderConfig< SpacePoint >::maxBlockSize = 1024

only for Cuda plugin

◆ maxPtScattering

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::maxPtScattering = 10 * UnitConstants::GeV

Maximum transverse momentum for scattering calculation.

◆ maxScatteringAngle2

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::maxScatteringAngle2 = 0

Squared maximum scattering angle for track validation.

◆ maxSeedsPerSpM

template<typename SpacePoint>
unsigned int Acts::SeedFinderConfig< SpacePoint >::maxSeedsPerSpM = 5

Maximum number (minus one) of accepted seeds per middle space-point.

◆ minPt

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::minPt = 400. * UnitConstants::MeV

Seeding parameters used to define the cuts on space-point triplets.

Minimum transverse momentum (pT) used to check the r-z slope compatibility of triplets with maximum multiple scattering effect (produced by the minimum allowed pT particle) + a certain uncertainty term. Check the documentation for more information https://acts.readthedocs.io/en/latest/core/reconstruction/pattern_recognition/seeding.html

◆ nAvgTrplPerSpBLimit

template<typename SpacePoint>
int Acts::SeedFinderConfig< SpacePoint >::nAvgTrplPerSpBLimit = 2

Average triplet limit per space-point bin for CUDA.

◆ nTrplPerSpBLimit

template<typename SpacePoint>
int Acts::SeedFinderConfig< SpacePoint >::nTrplPerSpBLimit = 100

Maximum number of triplets per space-point bin for CUDA.

◆ phiMax

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::phiMax = std::numbers::pi_v<float>

Maximum phi angle for space-point selection.

◆ phiMin

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::phiMin = -std::numbers::pi_v<float>

Seeding parameters used in the space-point grid creation and bin finding.

Geometry Settings + Detector ROI (r, z, phi) range for limiting location of all measurements and grid creation

◆ radLengthPerSeed

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::radLengthPerSeed = 0.05

Term that accounts for the thickness of scattering medium in radiation lengths in the Lynch & Dahl correction to the Highland equation default is 5% TODO: necessary to make amount of material dependent on detector region?

◆ rAlign

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::rAlign = 0 * UnitConstants::mm

Radial alignment uncertainty for space-point uncertainties.

◆ rMax

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::rMax = 600 * UnitConstants::mm

Maximum radius for space-point selection.

◆ rMaxMiddle

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::rMaxMiddle = 120.f * UnitConstants::mm

Maximum radius for middle space-point selection.

◆ rMin

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::rMin = 33 * UnitConstants::mm

WARNING: if rMin is smaller than impactMax, the bin size will be 2*pi, which will make seeding very slow!

◆ rMinMiddle

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::rMinMiddle = 60.f * UnitConstants::mm

Seeding parameters used to define the region of interest for middle space-point.

Radial range for middle space-point The range can be defined manually with (rMinMiddle, rMaxMiddle). If useVariableMiddleSPRange is set to false and the vector rRangeMiddleSP is empty, we use (rMinMiddle, rMaxMiddle) to cut the middle space-points

◆ rRangeMiddleSP

template<typename SpacePoint>
std::vector<std::vector<float> > Acts::SeedFinderConfig< SpacePoint >::rRangeMiddleSP

Range defined in vector for each z bin.

◆ seedConfirmation

template<typename SpacePoint>
bool Acts::SeedFinderConfig< SpacePoint >::seedConfirmation = false

Seeding parameters used for quality seed confirmation.

Enable quality seed confirmation, this is different than default seeding confirmation because it can also be defined for different (r, z) regions of the detector (e.g. forward or central region) by SeedConfirmationRange. Seeds are classified as "high-quality" seeds and normal quality seeds. Normal quality seeds are only selected if no other "high-quality" seeds has been found for that inner-middle doublet.

◆ seedFilter

template<typename SpacePoint>
std::shared_ptr<SeedFilter<SpacePoint> > Acts::SeedFinderConfig< SpacePoint >::seedFilter

Shared pointer to the seed filter for quality assessment.

◆ sigmaError

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::sigmaError = 5

used for measurement (+alignment) uncertainties.

find seeds within 5sigma error ellipse

◆ sigmaScattering

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::sigmaScattering = 5

Number of sigmas of scattering angle to be considered in the minimum pT scattering term.

◆ spacePointSelector

template<typename SpacePoint>
Delegate<bool(const SpacePoint&)> Acts::SeedFinderConfig< SpacePoint >::spacePointSelector
Initial value:

Delegate function for space-point selection filtering.

◆ toleranceParam

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::toleranceParam = 1.1 * UnitConstants::mm

Tolerance parameter used to check the compatibility of space-point coordinates in xyz.

This is only used in a detector specific check for strip modules

◆ useDetailedDoubleMeasurementInfo

template<typename SpacePoint>
bool Acts::SeedFinderConfig< SpacePoint >::useDetailedDoubleMeasurementInfo = false

Delegates for accessors to detailed information on double measurement that produced the space point.

This is mainly referring to space points produced when combining measurement from strips on back-to-back modules. Enables setting of the following delegates.

◆ useVariableMiddleSPRange

template<typename SpacePoint>
bool Acts::SeedFinderConfig< SpacePoint >::useVariableMiddleSPRange = false

If useVariableMiddleSPRange is set to false, the vector rRangeMiddleSP can be used to define a fixed r range for each z bin: {{rMin, rMax}, ...}.

◆ zAlign

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::zAlign = 0 * UnitConstants::mm

Other parameters.

Alignment uncertainties, used for uncertainties in the non-measurement-plane of the modules which otherwise would be 0 will be added to spacepoint measurement uncertainties (and therefore also multiplied by sigmaError) FIXME: call align1 and align2

◆ zBinEdges

template<typename SpacePoint>
std::vector<float> Acts::SeedFinderConfig< SpacePoint >::zBinEdges

Vector containing the z-bin edges for non equidistant binning in z.

◆ zBinsCustomLooping

template<typename SpacePoint>
std::vector<std::size_t> Acts::SeedFinderConfig< SpacePoint >::zBinsCustomLooping = {}

Order of z bins to loop over when searching for SPs.

◆ zMax

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::zMax = 2800 * UnitConstants::mm

Maximum z coordinate for space-point selection.

◆ zMin

template<typename SpacePoint>
float Acts::SeedFinderConfig< SpacePoint >::zMin = -2800 * UnitConstants::mm

Minimum z coordinate for space-point selection.