ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::AdaptiveMultiVertexFinder::Config Struct Reference

Configuration struct. More...

#include <Acts/Vertexing/AdaptiveMultiVertexFinder.hpp>

Collaboration diagram for Acts::AdaptiveMultiVertexFinder::Config:
[legend]

Public Member Functions

 Config (VertexFitter fitter, std::shared_ptr< const IVertexFinder > sfinder, ImpactPointEstimator ipEst, std::shared_ptr< const MagneticFieldProvider > bIn) noexcept
 Config constructor.

Public Attributes

bool addSingleTrackVertices = false
 Include also single track vertices.
std::shared_ptr< const MagneticFieldProviderbField
 Magnetic field provider for track propagation and vertex finding.
std::pair< double, double > defaultConstrFitQuality {0., -3.}
 Default fitQuality for constraint vertex in case no beamspot constraint is provided.
bool doFullSplitting = false
 If doFullSplitting == true, we check the 3D distance (if useTime == false) or the 4D distance (if useTime == true) of the vertices to determine whether they are merged.
bool doNotBreakWhileSeeding = false
 If set to true, the vertex finder will not break the finding loop.
bool doRealMultiVertex = true
 Perform a 'real' multi-vertex fit as intended by the algorithm.
InputTrack::Extractor extractParameters
 Function to extract parameters from InputTrack.
Vector4 initialVariances = Vector4::Constant(1e+8)
 Variances of the 4D vertex position before the vertex fit if no beamspot constraint is provided.
ImpactPointEstimator ipEstimator
 ImpactPointEstimator.
double maximumVertexContamination = 0.5
 Maximum vertex contamination value.
int maxIterations = 100
 Maximal number of iterations in the finding procedure.
double maxMergeVertexSignificance = 3.
 Maximum significance on the distance between two vertices to allow merging of two vertices.
double maxVertexChi2 = 18.42
 Max chi2 value for which tracks are considered compatible with the fitted vertex.
double minWeight = 0.0001
 Minimum weight a track has to have to be considered a compatible track with a vertex candidate.
std::shared_ptr< const IVertexFinderseedFinder
 Vertex seed finder.
double tracksMaxSignificance = 5.
 Maximum allowed significance of track position to vertex seed to consider track as compatible to vertex.
double tracksMaxZinterval = 3. * Acts::UnitConstants::mm
 Max z interval used for adding tracks to fit: When adding a new vertex to the multi vertex fit, only the tracks whose z at PCA is closer to the seeded vertex than tracksMaxZinterval are added to this new vertex.
bool useFastCompatibility = true
 Decides if you want to use the vertexCompatibility of the track (set to true) or the chi2Track (set to false) as an estimate for a track being an outlier or not.
bool useSeedConstraint = true
 Use seed vertex as a constraint for the fit.
bool useTime = false
 Use time information when assigning tracks to vertices.
bool useVertexCovForIPEstimation = false
 Use the full available vertex covariance information after seeding for the IP estimation.
VertexFitter vertexFitter
 Vertex fitter.

Detailed Description

Configuration struct.

Constructor & Destructor Documentation

◆ Config()

Acts::AdaptiveMultiVertexFinder::Config::Config ( VertexFitter fitter,
std::shared_ptr< const IVertexFinder > sfinder,
ImpactPointEstimator ipEst,
std::shared_ptr< const MagneticFieldProvider > bIn )
noexcept

Config constructor.

Parameters
fitterThe vertex fitter
sfinderThe seed finder
ipEstImpactPointEstimator
bInInput magnetic field

Member Data Documentation

◆ addSingleTrackVertices

bool Acts::AdaptiveMultiVertexFinder::Config::addSingleTrackVertices = false

Include also single track vertices.

◆ bField

std::shared_ptr<const MagneticFieldProvider> Acts::AdaptiveMultiVertexFinder::Config::bField

Magnetic field provider for track propagation and vertex finding.

◆ defaultConstrFitQuality

std::pair<double, double> Acts::AdaptiveMultiVertexFinder::Config::defaultConstrFitQuality {0., -3.}

Default fitQuality for constraint vertex in case no beamspot constraint is provided.

◆ doFullSplitting

bool Acts::AdaptiveMultiVertexFinder::Config::doFullSplitting = false

If doFullSplitting == true, we check the 3D distance (if useTime == false) or the 4D distance (if useTime == true) of the vertices to determine whether they are merged.

If doFullSplitting == false, we check the z distance (if useTime == false) or the z-t distance (if useTime == true) of the vertices to determine whether they are merged.

◆ doNotBreakWhileSeeding

bool Acts::AdaptiveMultiVertexFinder::Config::doNotBreakWhileSeeding = false

If set to true, the vertex finder will not break the finding loop.

Some seeders are not able to cope with this therefore this is disabled by default.

◆ doRealMultiVertex

bool Acts::AdaptiveMultiVertexFinder::Config::doRealMultiVertex = true

Perform a 'real' multi-vertex fit as intended by the algorithm.

If switched to true, always all (!) tracks are considered to be added to the new vertex candidate after seeding. If switched to false, only the seedTracks, i.e. all tracks that are considered as outliers of previously fitted vertices, are used.

◆ extractParameters

InputTrack::Extractor Acts::AdaptiveMultiVertexFinder::Config::extractParameters

Function to extract parameters from InputTrack.

◆ initialVariances

Vector4 Acts::AdaptiveMultiVertexFinder::Config::initialVariances = Vector4::Constant(1e+8)

Variances of the 4D vertex position before the vertex fit if no beamspot constraint is provided.

◆ ipEstimator

ImpactPointEstimator Acts::AdaptiveMultiVertexFinder::Config::ipEstimator

ImpactPointEstimator.

◆ maximumVertexContamination

double Acts::AdaptiveMultiVertexFinder::Config::maximumVertexContamination = 0.5

Maximum vertex contamination value.

◆ maxIterations

int Acts::AdaptiveMultiVertexFinder::Config::maxIterations = 100

Maximal number of iterations in the finding procedure.

◆ maxMergeVertexSignificance

double Acts::AdaptiveMultiVertexFinder::Config::maxMergeVertexSignificance = 3.

Maximum significance on the distance between two vertices to allow merging of two vertices.

3 corresponds to a p-value of ~0.92 using chi2(x=3,ndf=1)

◆ maxVertexChi2

double Acts::AdaptiveMultiVertexFinder::Config::maxVertexChi2 = 18.42

Max chi2 value for which tracks are considered compatible with the fitted vertex.

These tracks are removed from the seedTracks after the fit has been performed.

◆ minWeight

double Acts::AdaptiveMultiVertexFinder::Config::minWeight = 0.0001

Minimum weight a track has to have to be considered a compatible track with a vertex candidate.

Note: This value has to be the same as the one in the AMVFitter.

◆ seedFinder

std::shared_ptr<const IVertexFinder> Acts::AdaptiveMultiVertexFinder::Config::seedFinder

Vertex seed finder.

◆ tracksMaxSignificance

double Acts::AdaptiveMultiVertexFinder::Config::tracksMaxSignificance = 5.

Maximum allowed significance of track position to vertex seed to consider track as compatible to vertex.

If useTime is set to true, the time coordinate also contributes to the significance and tracksMaxSignificance needs to be increased. 5 corresponds to a p-value of ~0.92 using chi2(x=5,ndf=2)

◆ tracksMaxZinterval

double Acts::AdaptiveMultiVertexFinder::Config::tracksMaxZinterval = 3. * Acts::UnitConstants::mm

Max z interval used for adding tracks to fit: When adding a new vertex to the multi vertex fit, only the tracks whose z at PCA is closer to the seeded vertex than tracksMaxZinterval are added to this new vertex.

Note: If you cut too hard, you cut out the good cases where the seed finder is not reliable, but the fit would be still able to converge towards the right vertex. If you cut too soft, you consider a lot of tracks which just slow down the fit.

◆ useFastCompatibility

bool Acts::AdaptiveMultiVertexFinder::Config::useFastCompatibility = true

Decides if you want to use the vertexCompatibility of the track (set to true) or the chi2Track (set to false) as an estimate for a track being an outlier or not.

In case the track refitting is switched on in the AMVFitter, you may want to use the refitted chi2Track.

◆ useSeedConstraint

bool Acts::AdaptiveMultiVertexFinder::Config::useSeedConstraint = true

Use seed vertex as a constraint for the fit.

◆ useTime

bool Acts::AdaptiveMultiVertexFinder::Config::useTime = false

Use time information when assigning tracks to vertices.

If this is set to true, useTime of the vertex fitter configuration should also be set to true, and time seeding should be enabled.

◆ useVertexCovForIPEstimation

bool Acts::AdaptiveMultiVertexFinder::Config::useVertexCovForIPEstimation = false

Use the full available vertex covariance information after seeding for the IP estimation.

In original implementation this is not (!) done, however, this is probably not correct. So definitely consider setting this to true.

◆ vertexFitter

VertexFitter Acts::AdaptiveMultiVertexFinder::Config::vertexFitter

Vertex fitter.