From 97ce915d601e5d037821519f2daaea667a3a4061 Mon Sep 17 00:00:00 2001 From: Benjamin Huth Date: Mon, 28 Oct 2024 19:36:47 +0100 Subject: [PATCH 01/10] enhance track selector to work with track without reference surface --- .../Acts/TrackFinding/TrackSelector.hpp | 46 ++++++++++++------- .../python/acts/examples/reconstruction.py | 5 +- Examples/Python/src/ExampleAlgorithms.cpp | 1 + 3 files changed, 35 insertions(+), 17 deletions(-) diff --git a/Core/include/Acts/TrackFinding/TrackSelector.hpp b/Core/include/Acts/TrackFinding/TrackSelector.hpp index d0e8526dc35..44e43214d32 100644 --- a/Core/include/Acts/TrackFinding/TrackSelector.hpp +++ b/Core/include/Acts/TrackFinding/TrackSelector.hpp @@ -80,6 +80,10 @@ class TrackSelector { std::size_t maxSharedHits = std::numeric_limits::max(); double maxChi2 = inf; + // Whether a reference surface is required for the track + // If false, the parameter cuts are not evaluated + bool requireReferenceSurface = true; + // Defaults to: no cut MeasurementCounter measurementCounter; @@ -426,22 +430,32 @@ bool TrackSelector::isValidTrack(const track_proxy_t& track) const { const Config& cuts = *cutsPtr; - return track.hasReferenceSurface() && - within(track.transverseMomentum(), cuts.ptMin, cuts.ptMax) && - (m_noEtaCuts || (within(absEta(), cuts.absEtaMin, cuts.absEtaMax) && - within(_eta, cuts.etaMin, cuts.etaMax))) && - within(track.phi(), cuts.phiMin, cuts.phiMax) && - within(track.loc0(), cuts.loc0Min, cuts.loc0Max) && - within(track.loc1(), cuts.loc1Min, cuts.loc1Max) && - within(track.time(), cuts.timeMin, cuts.timeMax) && - checkMin(track.nMeasurements(), cuts.minMeasurements) && - checkMax(track.nHoles(), cuts.maxHoles) && - checkMax(track.nOutliers(), cuts.maxOutliers) && - checkMax(track.nHoles() + track.nOutliers(), - cuts.maxHolesAndOutliers) && - checkMax(track.nSharedHits(), cuts.maxSharedHits) && - checkMax(track.chi2(), cuts.maxChi2) && - cuts.measurementCounter.isValidTrack(track); + auto parameterCuts = [&]() { + return within(track.transverseMomentum(), cuts.ptMin, cuts.ptMax) && + (m_noEtaCuts || (within(absEta(), cuts.absEtaMin, cuts.absEtaMax) && + within(_eta, cuts.etaMin, cuts.etaMax))) && + within(track.phi(), cuts.phiMin, cuts.phiMax) && + within(track.loc0(), cuts.loc0Min, cuts.loc0Max) && + within(track.loc1(), cuts.loc1Min, cuts.loc1Max) && + within(track.time(), cuts.timeMin, cuts.timeMax); + }; + + auto trackCuts = [&]() { + return checkMin(track.nMeasurements(), cuts.minMeasurements) && + checkMax(track.nHoles(), cuts.maxHoles) && + checkMax(track.nOutliers(), cuts.maxOutliers) && + checkMax(track.nHoles() + track.nOutliers(), + cuts.maxHolesAndOutliers) && + checkMax(track.nSharedHits(), cuts.maxSharedHits) && + checkMax(track.chi2(), cuts.maxChi2) && + cuts.measurementCounter.isValidTrack(track); + }; + + if (cuts.requireReferenceSurface) { + return track.hasReferenceSurface() && parameterCuts() && trackCuts(); + } else { + return trackCuts(); + } } inline TrackSelector::TrackSelector( diff --git a/Examples/Python/python/acts/examples/reconstruction.py b/Examples/Python/python/acts/examples/reconstruction.py index 7ac0989744f..2b7de8e6131 100644 --- a/Examples/Python/python/acts/examples/reconstruction.py +++ b/Examples/Python/python/acts/examples/reconstruction.py @@ -130,8 +130,9 @@ "maxSharedHits", "maxChi2", "nMeasurementsGroupMin", + "requireReferenceSurface", ], - defaults=[(None, None)] * 7 + [None] * 7, + defaults=[(None, None)] * 7 + [None] * 8, ) CkfConfig = namedtuple( @@ -1495,6 +1496,7 @@ def addCKFTracks( maxSharedHits=c.maxSharedHits, maxChi2=c.maxChi2, measurementCounter=c.nMeasurementsGroupMin, + requireReferenceSurface=c.requireReferenceSurface, ) ) for c in tslist @@ -1765,6 +1767,7 @@ def addTrackSelection( ptMin=trackSelectorConfig.pt[0], ptMax=trackSelectorConfig.pt[1], minMeasurements=trackSelectorConfig.nMeasurementsMin, + requireReferenceSurface=trackSelectorConfig.requireReferenceSurface, ) ) diff --git a/Examples/Python/src/ExampleAlgorithms.cpp b/Examples/Python/src/ExampleAlgorithms.cpp index 598dde87b99..15e407a651c 100644 --- a/Examples/Python/src/ExampleAlgorithms.cpp +++ b/Examples/Python/src/ExampleAlgorithms.cpp @@ -109,6 +109,7 @@ void addExampleAlgorithms(Context& ctx) { ACTS_PYTHON_MEMBER(maxSharedHits); ACTS_PYTHON_MEMBER(maxChi2); ACTS_PYTHON_MEMBER(measurementCounter); + ACTS_PYTHON_MEMBER(requireReferenceSurface); ACTS_PYTHON_STRUCT_END(); pythonRangeProperty(c, "loc0", &Config::loc0Min, &Config::loc0Max); From 39374a6b666afd43e20214201f9c9a44608ebfa1 Mon Sep 17 00:00:00 2001 From: Benjamin Huth Date: Mon, 28 Oct 2024 20:08:08 +0100 Subject: [PATCH 02/10] refactor track selector config handling --- .../python/acts/examples/reconstruction.py | 80 ++++++++----------- 1 file changed, 35 insertions(+), 45 deletions(-) diff --git a/Examples/Python/python/acts/examples/reconstruction.py b/Examples/Python/python/acts/examples/reconstruction.py index 2b7de8e6131..d6cfa0d5268 100644 --- a/Examples/Python/python/acts/examples/reconstruction.py +++ b/Examples/Python/python/acts/examples/reconstruction.py @@ -135,6 +135,38 @@ defaults=[(None, None)] * 7 + [None] * 8, ) + +# Encapsulate this boilerplate code into a function so different uses do not get out of sync +# Gets an additional lambda for the etaMax, because we might want to use this with eta binning +def convertPyTrackSelectorConfig(pyCfg, etaMaxLambda=lambda etaMax: etaMax): + return acts.TrackSelector.Config( + **acts.examples.defaultKWArgs( + loc0Min=c.loc0[0], + loc0Max=c.loc0[1], + loc1Min=c.loc1[0], + loc1Max=c.loc1[1], + timeMin=c.time[0], + timeMax=c.time[1], + phiMin=c.phi[0], + phiMax=c.phi[1], + etaMin=c.eta[0], + etaMax=c.eta[1], + absEtaMin=c.absEta[0], + absEtaMax=etaMaxLambda(c.absEta[1]), + ptMin=c.pt[0], + ptMax=c.pt[1], + minMeasurements=c.nMeasurementsMin, + maxHoles=c.maxHoles, + maxOutliers=c.maxOutliers, + maxHolesAndOutliers=c.maxHolesAndOutliers, + maxSharedHits=c.maxSharedHits, + maxChi2=c.maxChi2, + measurementCounter=c.nMeasurementsGroupMin, + requireReferenceSurface=c.requireReferenceSurface, + ) + ) + + CkfConfig = namedtuple( "CkfConfig", [ @@ -1473,31 +1505,8 @@ def addCKFTracks( ) ) cutSets = [ - acts.TrackSelector.Config( - **acts.examples.defaultKWArgs( - loc0Min=c.loc0[0], - loc0Max=c.loc0[1], - loc1Min=c.loc1[0], - loc1Max=c.loc1[1], - timeMin=c.time[0], - timeMax=c.time[1], - phiMin=c.phi[0], - phiMax=c.phi[1], - etaMin=c.eta[0], - etaMax=c.eta[1], - absEtaMin=c.absEta[0], - absEtaMax=c.absEta[1] if len(tslist) == 1 else None, - ptMin=c.pt[0], - ptMax=c.pt[1], - minMeasurements=c.nMeasurementsMin, - maxHoles=c.maxHoles, - maxOutliers=c.maxOutliers, - maxHolesAndOutliers=c.maxHolesAndOutliers, - maxSharedHits=c.maxSharedHits, - maxChi2=c.maxChi2, - measurementCounter=c.nMeasurementsGroupMin, - requireReferenceSurface=c.requireReferenceSurface, - ) + convertPyTrackSelectorConfig( + c, lambda etaMax: etaMax if len(tslist) == 1 else None ) for c in tslist ] @@ -1750,26 +1759,7 @@ def addTrackSelection( customLogLevel = acts.examples.defaultLogging(s, logLevel) # single cut config for implicit single bin eta configuration - selectorConfig = acts.TrackSelector.Config( - **acts.examples.defaultKWArgs( - loc0Min=trackSelectorConfig.loc0[0], - loc0Max=trackSelectorConfig.loc0[1], - loc1Min=trackSelectorConfig.loc1[0], - loc1Max=trackSelectorConfig.loc1[1], - timeMin=trackSelectorConfig.time[0], - timeMax=trackSelectorConfig.time[1], - phiMin=trackSelectorConfig.phi[0], - phiMax=trackSelectorConfig.phi[1], - etaMin=trackSelectorConfig.eta[0], - etaMax=trackSelectorConfig.eta[1], - absEtaMin=trackSelectorConfig.absEta[0], - absEtaMax=trackSelectorConfig.absEta[1], - ptMin=trackSelectorConfig.pt[0], - ptMax=trackSelectorConfig.pt[1], - minMeasurements=trackSelectorConfig.nMeasurementsMin, - requireReferenceSurface=trackSelectorConfig.requireReferenceSurface, - ) - ) + selectorConfig = convertPyTrackSelectorConfig(trackSelectorConfig) trackSelector = acts.examples.TrackSelectorAlgorithm( level=customLogLevel(), From 78336391e73cee7257c231ef946f409ebcdb8a6f Mon Sep 17 00:00:00 2001 From: Benjamin Huth <37871400+benjaminhuth@users.noreply.github.com> Date: Mon, 28 Oct 2024 22:13:48 +0100 Subject: [PATCH 03/10] Apply suggestions from code review Co-authored-by: Andreas Stefl --- Core/include/Acts/TrackFinding/TrackSelector.hpp | 4 ++-- Examples/Python/python/acts/examples/reconstruction.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Core/include/Acts/TrackFinding/TrackSelector.hpp b/Core/include/Acts/TrackFinding/TrackSelector.hpp index 44e43214d32..d4e282dfba4 100644 --- a/Core/include/Acts/TrackFinding/TrackSelector.hpp +++ b/Core/include/Acts/TrackFinding/TrackSelector.hpp @@ -80,8 +80,8 @@ class TrackSelector { std::size_t maxSharedHits = std::numeric_limits::max(); double maxChi2 = inf; - // Whether a reference surface is required for the track - // If false, the parameter cuts are not evaluated + /// Whether a reference surface is required for the track + /// If false, the parameter cuts are not evaluated bool requireReferenceSurface = true; // Defaults to: no cut diff --git a/Examples/Python/python/acts/examples/reconstruction.py b/Examples/Python/python/acts/examples/reconstruction.py index d6cfa0d5268..3fd0cc6edca 100644 --- a/Examples/Python/python/acts/examples/reconstruction.py +++ b/Examples/Python/python/acts/examples/reconstruction.py @@ -138,7 +138,7 @@ # Encapsulate this boilerplate code into a function so different uses do not get out of sync # Gets an additional lambda for the etaMax, because we might want to use this with eta binning -def convertPyTrackSelectorConfig(pyCfg, etaMaxLambda=lambda etaMax: etaMax): +def convertPyTrackSelectorConfig(c, etaMaxLambda=lambda etaMax: etaMax): return acts.TrackSelector.Config( **acts.examples.defaultKWArgs( loc0Min=c.loc0[0], @@ -152,7 +152,7 @@ def convertPyTrackSelectorConfig(pyCfg, etaMaxLambda=lambda etaMax: etaMax): etaMin=c.eta[0], etaMax=c.eta[1], absEtaMin=c.absEta[0], - absEtaMax=etaMaxLambda(c.absEta[1]), + absEtaMax= absEtaMaxLambda(c.absEta[1]), ptMin=c.pt[0], ptMax=c.pt[1], minMeasurements=c.nMeasurementsMin, From 4f5ea2a30bd2efc2b0384b8166a2b9306028b006 Mon Sep 17 00:00:00 2001 From: Benjamin Huth <37871400+benjaminhuth@users.noreply.github.com> Date: Wed, 30 Oct 2024 21:13:54 +0100 Subject: [PATCH 04/10] Update reconstruction.py --- Examples/Python/python/acts/examples/reconstruction.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Examples/Python/python/acts/examples/reconstruction.py b/Examples/Python/python/acts/examples/reconstruction.py index 51d9db7bf60..279528d5127 100644 --- a/Examples/Python/python/acts/examples/reconstruction.py +++ b/Examples/Python/python/acts/examples/reconstruction.py @@ -128,10 +128,11 @@ defaults=[(None, None)] * 7 + [None] * 8, ) - -# Encapsulate this boilerplate code into a function so different uses do not get out of sync -# Gets an additional lambda for the etaMax, because we might want to use this with eta binning -def convertPyTrackSelectorConfig(c, etaMaxLambda=lambda etaMax: etaMax): +def convertPyTrackSelectorConfig(c, absEtaMaxLambda=lambda etaMax: etaMax): + ''' + Encapsulate this boilerplate code into a function so different uses do not get out of sync + Gets an additional lambda for the etaMax, because we might want to use this with eta binning + ''' return acts.TrackSelector.Config( **acts.examples.defaultKWArgs( loc0Min=c.loc0[0], From 16239783db45a36b0fd5a277a26353665f1d8eea Mon Sep 17 00:00:00 2001 From: Benjamin Huth Date: Thu, 31 Oct 2024 10:14:26 +0100 Subject: [PATCH 05/10] pre-commit hook --- Core/include/Acts/TrackFinding/TrackSelector.hpp | 5 +++-- Examples/Python/python/acts/examples/reconstruction.py | 7 ++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Core/include/Acts/TrackFinding/TrackSelector.hpp b/Core/include/Acts/TrackFinding/TrackSelector.hpp index 4950648912d..6d938c03085 100644 --- a/Core/include/Acts/TrackFinding/TrackSelector.hpp +++ b/Core/include/Acts/TrackFinding/TrackSelector.hpp @@ -445,8 +445,9 @@ bool TrackSelector::isValidTrack(const track_proxy_t& track) const { auto parameterCuts = [&]() { return within(track.transverseMomentum(), cuts.ptMin, cuts.ptMax) && - (!m_isUnbinned || (within(absEta(), cuts.absEtaMin, cuts.absEtaMax) && - within(_eta, cuts.etaMin, cuts.etaMax))) && + (!m_isUnbinned || + (within(absEta(), cuts.absEtaMin, cuts.absEtaMax) && + within(_eta, cuts.etaMin, cuts.etaMax))) && within(track.phi(), cuts.phiMin, cuts.phiMax) && within(track.loc0(), cuts.loc0Min, cuts.loc0Max) && within(track.loc1(), cuts.loc1Min, cuts.loc1Max) && diff --git a/Examples/Python/python/acts/examples/reconstruction.py b/Examples/Python/python/acts/examples/reconstruction.py index 279528d5127..55febe6079f 100644 --- a/Examples/Python/python/acts/examples/reconstruction.py +++ b/Examples/Python/python/acts/examples/reconstruction.py @@ -128,11 +128,12 @@ defaults=[(None, None)] * 7 + [None] * 8, ) + def convertPyTrackSelectorConfig(c, absEtaMaxLambda=lambda etaMax: etaMax): - ''' + """ Encapsulate this boilerplate code into a function so different uses do not get out of sync Gets an additional lambda for the etaMax, because we might want to use this with eta binning - ''' + """ return acts.TrackSelector.Config( **acts.examples.defaultKWArgs( loc0Min=c.loc0[0], @@ -146,7 +147,7 @@ def convertPyTrackSelectorConfig(c, absEtaMaxLambda=lambda etaMax: etaMax): etaMin=c.eta[0], etaMax=c.eta[1], absEtaMin=c.absEta[0], - absEtaMax= absEtaMaxLambda(c.absEta[1]), + absEtaMax=absEtaMaxLambda(c.absEta[1]), ptMin=c.pt[0], ptMax=c.pt[1], minMeasurements=c.nMeasurementsMin, From 3119f902e0dca21d6cd146c41c0c8ab147f0dec6 Mon Sep 17 00:00:00 2001 From: Benjamin Huth Date: Fri, 1 Nov 2024 13:52:21 +0100 Subject: [PATCH 06/10] change lambda --- .../python/acts/examples/reconstruction.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/Examples/Python/python/acts/examples/reconstruction.py b/Examples/Python/python/acts/examples/reconstruction.py index 55febe6079f..fe65fcb4522 100644 --- a/Examples/Python/python/acts/examples/reconstruction.py +++ b/Examples/Python/python/acts/examples/reconstruction.py @@ -129,12 +129,11 @@ ) -def convertPyTrackSelectorConfig(c, absEtaMaxLambda=lambda etaMax: etaMax): +def trackSelectorDefaultKWArgs(c): """ Encapsulate this boilerplate code into a function so different uses do not get out of sync - Gets an additional lambda for the etaMax, because we might want to use this with eta binning """ - return acts.TrackSelector.Config( + return { **acts.examples.defaultKWArgs( loc0Min=c.loc0[0], loc0Max=c.loc0[1], @@ -159,7 +158,7 @@ def convertPyTrackSelectorConfig(c, absEtaMaxLambda=lambda etaMax: etaMax): measurementCounter=c.nMeasurementsGroupMin, requireReferenceSurface=c.requireReferenceSurface, ) - ) + } CkfConfig = namedtuple( @@ -1453,9 +1452,11 @@ def addCKFTracks( else trackSelectorConfig ) ) + + overrideAbsEtaMax = dict() if len(tslist) == 1 else dict(absEtaMax=None) cutSets = [ - convertPyTrackSelectorConfig( - c, lambda etaMax: etaMax if len(tslist) == 1 else None + acts.TrackSelector.Config( + trackSelectorDefaultKWArgs(c).update(overrideAbsEtaMax) ) for c in tslist ] @@ -1708,7 +1709,9 @@ def addTrackSelection( customLogLevel = acts.examples.defaultLogging(s, logLevel) # single cut config for implicit single bin eta configuration - selectorConfig = convertPyTrackSelectorConfig(trackSelectorConfig) + selectorConfig = acts.TrackSelector.Config( + trackSelectorDefaultKWArgs(trackSelectorConfig) + ) trackSelector = acts.examples.TrackSelectorAlgorithm( level=customLogLevel(), From e44f262c06fd496d482edac8000995e4681a5f9c Mon Sep 17 00:00:00 2001 From: Benjamin Huth Date: Fri, 1 Nov 2024 13:54:35 +0100 Subject: [PATCH 07/10] change var name --- Examples/Python/python/acts/examples/reconstruction.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Examples/Python/python/acts/examples/reconstruction.py b/Examples/Python/python/acts/examples/reconstruction.py index fe65fcb4522..80cab3a9a51 100644 --- a/Examples/Python/python/acts/examples/reconstruction.py +++ b/Examples/Python/python/acts/examples/reconstruction.py @@ -1453,11 +1453,9 @@ def addCKFTracks( ) ) - overrideAbsEtaMax = dict() if len(tslist) == 1 else dict(absEtaMax=None) + overwriteArgs = dict() if len(tslist) == 1 else dict(absEtaMax=None) cutSets = [ - acts.TrackSelector.Config( - trackSelectorDefaultKWArgs(c).update(overrideAbsEtaMax) - ) + acts.TrackSelector.Config(trackSelectorDefaultKWArgs(c).update(overwriteArgs)) for c in tslist ] if len(tslist) == 0: From 45c9c09815b8ae8f9897466e2e81f1ac2c51f8f2 Mon Sep 17 00:00:00 2001 From: Benjamin Huth <37871400+benjaminhuth@users.noreply.github.com> Date: Fri, 1 Nov 2024 19:32:57 +0100 Subject: [PATCH 08/10] Update Examples/Python/python/acts/examples/reconstruction.py Co-authored-by: Andreas Stefl --- Examples/Python/python/acts/examples/reconstruction.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Examples/Python/python/acts/examples/reconstruction.py b/Examples/Python/python/acts/examples/reconstruction.py index 80cab3a9a51..2530a5007a5 100644 --- a/Examples/Python/python/acts/examples/reconstruction.py +++ b/Examples/Python/python/acts/examples/reconstruction.py @@ -133,8 +133,7 @@ def trackSelectorDefaultKWArgs(c): """ Encapsulate this boilerplate code into a function so different uses do not get out of sync """ - return { - **acts.examples.defaultKWArgs( + return acts.examples.defaultKWArgs( loc0Min=c.loc0[0], loc0Max=c.loc0[1], loc1Min=c.loc1[0], From b72a14eb57d9319eeecf9697492eff10551d3e3d Mon Sep 17 00:00:00 2001 From: Benjamin Huth Date: Fri, 1 Nov 2024 19:35:15 +0100 Subject: [PATCH 09/10] update --- .../python/acts/examples/reconstruction.py | 47 +++++++++---------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/Examples/Python/python/acts/examples/reconstruction.py b/Examples/Python/python/acts/examples/reconstruction.py index 2530a5007a5..f7c846bc838 100644 --- a/Examples/Python/python/acts/examples/reconstruction.py +++ b/Examples/Python/python/acts/examples/reconstruction.py @@ -134,30 +134,29 @@ def trackSelectorDefaultKWArgs(c): Encapsulate this boilerplate code into a function so different uses do not get out of sync """ return acts.examples.defaultKWArgs( - loc0Min=c.loc0[0], - loc0Max=c.loc0[1], - loc1Min=c.loc1[0], - loc1Max=c.loc1[1], - timeMin=c.time[0], - timeMax=c.time[1], - phiMin=c.phi[0], - phiMax=c.phi[1], - etaMin=c.eta[0], - etaMax=c.eta[1], - absEtaMin=c.absEta[0], - absEtaMax=absEtaMaxLambda(c.absEta[1]), - ptMin=c.pt[0], - ptMax=c.pt[1], - minMeasurements=c.nMeasurementsMin, - maxHoles=c.maxHoles, - maxOutliers=c.maxOutliers, - maxHolesAndOutliers=c.maxHolesAndOutliers, - maxSharedHits=c.maxSharedHits, - maxChi2=c.maxChi2, - measurementCounter=c.nMeasurementsGroupMin, - requireReferenceSurface=c.requireReferenceSurface, - ) - } + loc0Min=c.loc0[0], + loc0Max=c.loc0[1], + loc1Min=c.loc1[0], + loc1Max=c.loc1[1], + timeMin=c.time[0], + timeMax=c.time[1], + phiMin=c.phi[0], + phiMax=c.phi[1], + etaMin=c.eta[0], + etaMax=c.eta[1], + absEtaMin=c.absEta[0], + absEtaMax=absEtaMaxLambda(c.absEta[1]), + ptMin=c.pt[0], + ptMax=c.pt[1], + minMeasurements=c.nMeasurementsMin, + maxHoles=c.maxHoles, + maxOutliers=c.maxOutliers, + maxHolesAndOutliers=c.maxHolesAndOutliers, + maxSharedHits=c.maxSharedHits, + maxChi2=c.maxChi2, + measurementCounter=c.nMeasurementsGroupMin, + requireReferenceSurface=c.requireReferenceSurface, + ) CkfConfig = namedtuple( From 5e748532badcb065e9a4cb84cc3878f7fa42327d Mon Sep 17 00:00:00 2001 From: Benjamin Huth <37871400+benjaminhuth@users.noreply.github.com> Date: Tue, 12 Nov 2024 11:29:45 +0100 Subject: [PATCH 10/10] fix --- Examples/Python/python/acts/examples/reconstruction.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Examples/Python/python/acts/examples/reconstruction.py b/Examples/Python/python/acts/examples/reconstruction.py index f7c846bc838..922f5da55fc 100644 --- a/Examples/Python/python/acts/examples/reconstruction.py +++ b/Examples/Python/python/acts/examples/reconstruction.py @@ -145,7 +145,7 @@ def trackSelectorDefaultKWArgs(c): etaMin=c.eta[0], etaMax=c.eta[1], absEtaMin=c.absEta[0], - absEtaMax=absEtaMaxLambda(c.absEta[1]), + absEtaMax=c.absEta[1], ptMin=c.pt[0], ptMax=c.pt[1], minMeasurements=c.nMeasurementsMin,