Skip to content

Commit

Permalink
refactor!: set different initial spatial and temporal vertex variances (
Browse files Browse the repository at this point in the history
#2804)

Due to our choice of units, temporal coordinates live on a different numerical scale than spatial coordinates

This should be considered when setting the initial vertex covariance matrix

`BREAKING CHANGE:` member variable `looseConstrValue` is replaced by `initialVariances`
  • Loading branch information
felix-russo authored Dec 13, 2023
1 parent 407df93 commit dfb07ef
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 6 deletions.
Binary file modified CI/physmon/reference/performance_amvf_gridseeder_seeded_hist.root
Binary file not shown.
6 changes: 3 additions & 3 deletions Core/include/Acts/Vertexing/AdaptiveMultiVertexFinder.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -145,9 +145,9 @@ class AdaptiveMultiVertexFinder {
// Use seed vertex as a constraint for the fit
bool useSeedConstraint = true;

// Diagonal constraint covariance entries in case
// no beamspot constraint is provided
double looseConstrValue = 1e+8;
// Variances of the 4D vertex position before the vertex fit if no beamspot
// constraint is provided
Vector4 initialVariances = Vector4::Constant(1e+8);

// Default fitQuality for constraint vertex in case no beamspot
// constraint is provided
Expand Down
3 changes: 1 addition & 2 deletions Core/include/Acts/Vertexing/AdaptiveMultiVertexFinder.ipp
Original file line number Diff line number Diff line change
Expand Up @@ -185,8 +185,7 @@ auto Acts::AdaptiveMultiVertexFinder<vfitter_t, sfinder_t>::
}
} else {
currentConstraint.setFullPosition(seedVertex.fullPosition());
currentConstraint.setFullCovariance(SquareMatrix4::Identity() *
m_cfg.looseConstrValue);
currentConstraint.setFullCovariance(m_cfg.initialVariances.asDiagonal());
currentConstraint.setFitQuality(m_cfg.defaultConstrFitQuality);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,10 @@ ActsExamples::AdaptiveMultiVertexFinderAlgorithm::executeAfterSeederChoice(
typename Finder::Config finderConfig(std::move(fitter), std::move(seedFinder),
ipEstimator, std::move(linearizer),
m_cfg.bField);
finderConfig.looseConstrValue = 1e2;
// Set the initial variance of the 4D vertex position. Since time is on a
// numerical scale, we have to provide a greater value in the corresponding
// dimension.
finderConfig.initialVariances << 1e+2, 1e+2, 1e+2, 1e+7;
finderConfig.tracksMaxZinterval = 1. * Acts::UnitConstants::mm;
finderConfig.maxIterations = 200;
finderConfig.useTime = m_cfg.useTime;
Expand Down

0 comments on commit dfb07ef

Please sign in to comment.