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

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

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

◆ 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

◆ 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

◆ 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

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

◆ sigmaError

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

used for measurement (+alignment) uncertainties.

find seeds within 5sigma error ellipse

◆ spacePointSelector

template<typename SpacePoint>
Delegate<bool(const SpacePoint&)> Acts::SeedFinderConfig< SpacePoint >::spacePointSelector
Initial value:
{
Tag type to select a compile-time callable for Delegate.
Definition Delegate.hpp:25

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.

◆ 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 space point measurement uncertainties (and therefore also multiplied by sigmaError) FIXME: call align1 and align2