From a9ee4195ea8f40ab39a648ead6448ee64372c1c6 Mon Sep 17 00:00:00 2001 From: Carlo Varni <cvarni@lxplus734.cern.ch> Date: Wed, 12 Jan 2022 14:18:07 +0100 Subject: [PATCH] Fit run time error --- .../python/ActsSeedingToolConfig.py | 2 ++ .../ActsTrkFinding/src/ActsSeedingTool.cxx | 27 +++++++++++++++---- .../Acts/ActsTrkFinding/src/ActsSeedingTool.h | 2 ++ 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/Tracking/Acts/ActsTrkFinding/python/ActsSeedingToolConfig.py b/Tracking/Acts/ActsTrkFinding/python/ActsSeedingToolConfig.py index 151cc8442c42..4d1fcec64dc3 100644 --- a/Tracking/Acts/ActsTrkFinding/python/ActsSeedingToolConfig.py +++ b/Tracking/Acts/ActsTrkFinding/python/ActsSeedingToolConfig.py @@ -65,6 +65,8 @@ def ActsSeedingToolBaseCfg(ConfigFlags, options.setdefault('radLengthPerSeed', 0.5) options.setdefault('minPt', 500. * UnitConstants.MeV) options.setdefault('impactMax', 3 * UnitConstants.mm) + options.setdefault('numPhiNeighbors', 1) + options.setdefault('zBinEdges', []) options.setdefault('zBinNeighborsTop', []) options.setdefault('zBinNeighborsBottom', []) diff --git a/Tracking/Acts/ActsTrkFinding/src/ActsSeedingTool.cxx b/Tracking/Acts/ActsTrkFinding/src/ActsSeedingTool.cxx index 343065736b8f..c49287dd6c44 100644 --- a/Tracking/Acts/ActsTrkFinding/src/ActsSeedingTool.cxx +++ b/Tracking/Acts/ActsTrkFinding/src/ActsSeedingTool.cxx @@ -39,6 +39,21 @@ namespace ActsTrk { ATH_MSG_INFO( " " << m_radLengthPerSeed ); ATH_MSG_INFO( " " << m_minPt ); ATH_MSG_INFO( " " << m_impactMax ); + ATH_MSG_INFO( " " << m_numPhiNeighbors ); + + if (m_zBinEdges.size() - 1 != + m_zBinNeighborsTop.size() and + not m_zBinNeighborsTop.empty()) { + ATH_MSG_ERROR("Inconsistent config zBinNeighborsTop"); + return StatusCode::FAILURE; + } + + if (m_zBinEdges.size() - 1 != + m_zBinNeighborsBottom.size() and + not m_zBinNeighborsBottom.empty()) { + ATH_MSG_ERROR("Inconsistent config zBinNeighborsBottom"); + return StatusCode::FAILURE; + } return StatusCode::SUCCESS; } @@ -56,7 +71,7 @@ namespace ActsTrk { spContainer.end(), beamSpotData, magFieldContext ); - + // Store seeds seedContainer.reserve(groupSeeds.size()); for (unsigned int i(0);i<groupSeeds.size();i++) { @@ -110,9 +125,9 @@ namespace ActsTrk { }; std::shared_ptr< Acts::BinFinder< external_spacepoint_t > > bottomBinFinder = - std::make_shared< Acts::BinFinder< external_spacepoint_t > >(m_zBinNeighborsBottom, 1); + std::make_shared< Acts::BinFinder< external_spacepoint_t > >(m_zBinNeighborsBottom, m_numPhiNeighbors); std::shared_ptr< Acts::BinFinder< external_spacepoint_t > > topBinFinder = - std::make_shared< Acts::BinFinder< external_spacepoint_t > >(m_zBinNeighborsTop, 1); + std::make_shared< Acts::BinFinder< external_spacepoint_t > >(m_zBinNeighborsTop, m_numPhiNeighbors); std::unique_ptr< Acts::SpacePointGrid< external_spacepoint_t > > grid = Acts::SpacePointGridCreator::createGrid< external_spacepoint_t >(gridCfg); @@ -121,9 +136,8 @@ namespace ActsTrk { Acts::Seedfinder< external_spacepoint_t > finder(finderCfg); - static thread_local typename decltype(finder)::State state; - + auto group = spacePointsGrouping.begin(); auto groupEnd = spacePointsGrouping.end(); for (; group != groupEnd; ++group) { @@ -152,6 +166,9 @@ namespace ActsTrk { gridCfg.deltaRMax = m_deltaRMax; gridCfg.cotThetaMax = m_cotThetaMax; gridCfg.bFieldInZ = bField[2]; + gridCfg.impactMax = m_impactMax; + gridCfg.numPhiNeighbors = m_numPhiNeighbors; + gridCfg.zBinEdges = m_zBinEdges; // Configuration for Acts::Seedfinder // These values will not be changed during execution diff --git a/Tracking/Acts/ActsTrkFinding/src/ActsSeedingTool.h b/Tracking/Acts/ActsTrkFinding/src/ActsSeedingTool.h index 24f1f22541cb..cfa374316ab2 100644 --- a/Tracking/Acts/ActsTrkFinding/src/ActsSeedingTool.h +++ b/Tracking/Acts/ActsTrkFinding/src/ActsSeedingTool.h @@ -94,6 +94,8 @@ namespace ActsTrk { Gaudi::Property< float > m_radLengthPerSeed {this,"radLengthPerSeed",0.5,""}; Gaudi::Property< float > m_minPt {this,"minPt",500. * Acts::UnitConstants::MeV,""}; Gaudi::Property< float > m_impactMax {this,"impactMax",3. * Acts::UnitConstants::mm,""}; + Gaudi::Property< int > m_numPhiNeighbors {this, "numPhiNeighbors", 1, ""}; + Gaudi::Property< std::vector<float> > m_zBinEdges {this, "zBinEdges", {} , ""}; Gaudi::Property< std::vector<std::pair<int, int>> > m_zBinNeighborsTop{this, "zBinNeighborsTop", {}, ""}; Gaudi::Property< std::vector<std::pair<int, int>> > m_zBinNeighborsBottom{this, "zBinNeighborsBottom", {}, ""}; }; -- GitLab