Skip to content

Commit

Permalink
fix: Tweak AMVF config with time in Examples (#2985)
Browse files Browse the repository at this point in the history
I observed higher vertex efficiency with time setting `maxMergeVertexSignificance` to default. `tracksMaxSignificance` and `doFullSplitting` were also reset in order to use the same config with and without time.
  • Loading branch information
andiwand committed Mar 13, 2024
1 parent 3a4c1d4 commit dac4a44
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 7 deletions.
Binary file modified CI/physmon/reference/performance_amvf_gridseeder_seeded_hist.root
Binary file not shown.
2 changes: 2 additions & 0 deletions Core/include/Acts/Vertexing/AdaptiveMultiVertexFinder.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ class AdaptiveMultiVertexFinder final : public IVertexFinder {
// 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)`
double tracksMaxSignificance = 5.;

// Max chi2 value for which tracks are considered compatible with
Expand All @@ -98,6 +99,7 @@ class AdaptiveMultiVertexFinder final : public IVertexFinder {

// 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)`
double maxMergeVertexSignificance = 3.;

// Minimum weight a track has to have to be considered a compatible
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,17 +133,22 @@ auto ActsExamples::AdaptiveMultiVertexFinderAlgorithm::makeVertexFinder() const
finderConfig.tracksMaxZinterval = 1. * Acts::UnitConstants::mm;
finderConfig.maxIterations = 200;
finderConfig.useTime = m_cfg.useTime;
// 5 corresponds to a p-value of ~0.92 using `chi2(x=5,ndf=2)`
finderConfig.tracksMaxSignificance = 5;
// This should be used consistently with and without time
finderConfig.doFullSplitting = false;
// 3 corresponds to a p-value of ~0.92 using `chi2(x=3,ndf=1)`
finderConfig.maxMergeVertexSignificance = 3;
if (m_cfg.useTime) {
// When using time, we have an extra contribution to the chi2 by the time
// coordinate. We thus need to increase tracksMaxSignificance (i.e., the
// maximum chi2 that a track can have to be associated with a vertex).
finderConfig.tracksMaxSignificance = 7.5;
finderConfig.doFullSplitting = true;
// Reset the maximum significance that two vertices can have before they
// are considered as merged. The default value 3 is tuned for comparing
// the vertices' z-coordinates. Since we consider 4 dimensions here, we
// need to multiply the value by 4 and thus we set it to 3 * 4 = 12.
finderConfig.maxMergeVertexSignificance = 12.;
// Using the same p-value for 3 dof instead of 2.
// 6.7 corresponds to a p-value of ~0.92 using `chi2(x=6.7,ndf=3)`
finderConfig.tracksMaxSignificance = 6.7;
// Using the same p-value for 2 dof instead of 1.
// 5 corresponds to a p-value of ~0.92 using `chi2(x=5,ndf=2)`
finderConfig.maxMergeVertexSignificance = 5;
}
finderConfig.extractParameters
.template connect<&Acts::InputTrack::extractParameters>();
Expand Down

0 comments on commit dac4a44

Please sign in to comment.