From dfb07efaedc5b6131e8eaa1da88dd70f70dd9418 Mon Sep 17 00:00:00 2001 From: Felix Russo <72298366+felix-russo@users.noreply.github.com> Date: Wed, 13 Dec 2023 16:17:47 +0100 Subject: [PATCH] refactor!: set different initial spatial and temporal vertex variances (#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` --- ...rformance_amvf_gridseeder_seeded_hist.root | Bin 43363 -> 43431 bytes .../Vertexing/AdaptiveMultiVertexFinder.hpp | 6 +++--- .../Vertexing/AdaptiveMultiVertexFinder.ipp | 3 +-- .../AdaptiveMultiVertexFinderAlgorithm.cpp | 5 ++++- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/CI/physmon/reference/performance_amvf_gridseeder_seeded_hist.root b/CI/physmon/reference/performance_amvf_gridseeder_seeded_hist.root index 1d453e5c49eecf1ef6ca955a9a44f058ad900c2e..08e31b976f0c5a6ccb24f1fa8de8ea93c7f50cf4 100644 GIT binary patch delta 27565 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 diff --git a/Core/include/Acts/Vertexing/AdaptiveMultiVertexFinder.hpp b/Core/include/Acts/Vertexing/AdaptiveMultiVertexFinder.hpp index 50c8ce3143c..8ba5b107e18 100644 --- a/Core/include/Acts/Vertexing/AdaptiveMultiVertexFinder.hpp +++ b/Core/include/Acts/Vertexing/AdaptiveMultiVertexFinder.hpp @@ -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 diff --git a/Core/include/Acts/Vertexing/AdaptiveMultiVertexFinder.ipp b/Core/include/Acts/Vertexing/AdaptiveMultiVertexFinder.ipp index 84ada8c30ca..0bbaf41fcc9 100644 --- a/Core/include/Acts/Vertexing/AdaptiveMultiVertexFinder.ipp +++ b/Core/include/Acts/Vertexing/AdaptiveMultiVertexFinder.ipp @@ -185,8 +185,7 @@ auto Acts::AdaptiveMultiVertexFinder:: } } else { currentConstraint.setFullPosition(seedVertex.fullPosition()); - currentConstraint.setFullCovariance(SquareMatrix4::Identity() * - m_cfg.looseConstrValue); + currentConstraint.setFullCovariance(m_cfg.initialVariances.asDiagonal()); currentConstraint.setFitQuality(m_cfg.defaultConstrFitQuality); } } diff --git a/Examples/Algorithms/Vertexing/src/AdaptiveMultiVertexFinderAlgorithm.cpp b/Examples/Algorithms/Vertexing/src/AdaptiveMultiVertexFinderAlgorithm.cpp index 838228fb160..a21c39c3f92 100644 --- a/Examples/Algorithms/Vertexing/src/AdaptiveMultiVertexFinderAlgorithm.cpp +++ b/Examples/Algorithms/Vertexing/src/AdaptiveMultiVertexFinderAlgorithm.cpp @@ -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;