Skip to content

Commit b38b9b5

Browse files
committed
revive delta r thingy
1 parent 2ec7fd5 commit b38b9b5

File tree

6 files changed

+21
-9
lines changed

6 files changed

+21
-9
lines changed

Core/include/Acts/Seeding2/BroadTripletSeedFilter.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ class BroadTripletSeedFilter final {
6969

7070
/// Use deltaR between top and middle SP instead of top radius to search for
7171
/// compatible SPs
72-
bool useDeltaRorTopRadius = false;
72+
bool useDeltaRinsteadOfTopRadius = false;
7373

7474
std::shared_ptr<ITripletSeedCuts> experimentCuts;
7575
};

Core/src/Seeding2/BroadTripletSeedFilter.cpp

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
#include "Acts/EventData/SpacePointContainer2.hpp"
1212
#include "Acts/Seeding2/ITripletSeedCuts.hpp"
13+
#include "Acts/Utilities/MathHelpers.hpp"
1314

1415
#include <algorithm>
1516
#include <numeric>
@@ -86,6 +87,13 @@ void BroadTripletSeedFilter::filter2SpFixed(
8687
// vector containing the radius of all compatible seeds
8788
cache.compatibleSeedR.reserve(m_cfg.compatSeedLimit);
8889

90+
const auto getTopR = [&](ConstSpacePointProxy2 spT) {
91+
if (m_cfg.useDeltaRinsteadOfTopRadius) {
92+
return fastHypot(spT.extra(rColumn), spT.z());
93+
}
94+
return spT.extra(rColumn);
95+
};
96+
8997
std::size_t beginCompTopIndex = 0;
9098
// loop over top SPs and other compatible top SP candidates
9199
for (const std::size_t topSpIndex : cache.topSpIndexVec) {
@@ -99,12 +107,10 @@ void BroadTripletSeedFilter::filter2SpFixed(
99107
float invHelixDiameter = invHelixDiameterVec[topSpIndex];
100108
float lowerLimitCurv = invHelixDiameter - m_cfg.deltaInvHelixDiameter;
101109
float upperLimitCurv = invHelixDiameter + m_cfg.deltaInvHelixDiameter;
102-
// use deltaR instead of top radius
103-
assert(!m_cfg.useDeltaRorTopRadius && "TODO not implemented");
104-
float currentTopR = spT.extra(rColumn);
110+
float currentTopR = getTopR(spT);
105111
float impact = impactParametersVec[topSpIndex];
106112

107-
float weight = -(impact * m_cfg.impactWeightFactor);
113+
float weight = -impact * m_cfg.impactWeightFactor;
108114

109115
// loop over compatible top SP candidates
110116
for (std::size_t variableCompTopIndex = beginCompTopIndex;
@@ -117,8 +123,7 @@ void BroadTripletSeedFilter::filter2SpFixed(
117123
}
118124
auto otherSpT = spacePoints.at(topSpVec[compatibletopSpIndex]);
119125

120-
assert(!m_cfg.useDeltaRorTopRadius && "TODO not implemented");
121-
float otherTopR = otherSpT.extra(rColumn);
126+
float otherTopR = getTopR(otherSpT);
122127

123128
// curvature difference within limits?
124129
if (invHelixDiameterVec[compatibletopSpIndex] < lowerLimitCurv) {

Examples/Algorithms/TrackFinding/include/ActsExamples/TrackFinding/GridTripletSeedingAlgorithm.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,10 @@ class GridTripletSeedingAlgorithm final : public IAlgorithm {
188188
float seedWeightIncrement = 0;
189189
float numSeedIncrement = std::numeric_limits<float>::infinity();
190190

191+
/// Use deltaR between top and middle SP instead of top radius to search for
192+
/// compatible SPs
193+
bool useDeltaRinsteadOfTopRadius = false;
194+
191195
// Seeding parameters used for quality seed confirmation
192196

193197
/// Enable quality seed confirmation, this is different than default seeding

Examples/Algorithms/TrackFinding/src/GridTripletSeedingAlgorithm.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ GridTripletSeedingAlgorithm::GridTripletSeedingAlgorithm(
8181
filterConfig.compatSeedLimit = m_cfg.compatSeedLimit;
8282
filterConfig.seedWeightIncrement = m_cfg.seedWeightIncrement;
8383
filterConfig.numSeedIncrement = m_cfg.numSeedIncrement;
84+
filterConfig.useDeltaRinsteadOfTopRadius = m_cfg.useDeltaRinsteadOfTopRadius;
8485

8586
m_seedFilter = Acts::Experimental::BroadTripletSeedFilter(
8687
filterConfig, logger().cloneWithSuffix("Filter"));

Examples/Python/python/acts/examples/reconstruction.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -884,6 +884,7 @@ def addGridTripletSeeding(
884884
compatSeedLimit=seedFilterConfigArg.compatSeedLimit,
885885
seedWeightIncrement=seedFilterConfigArg.seedWeightIncrement,
886886
numSeedIncrement=seedFilterConfigArg.numSeedIncrement,
887+
useDeltaRinsteadOfTopRadius=seedFilterConfigArg.useDeltaRorTopRadius,
887888
seedConfirmation=seedFinderConfigArg.seedConfirmation,
888889
centralSeedConfirmationRange=seedFinderConfigArg.centralSeedConfirmationRange,
889890
forwardSeedConfirmationRange=seedFinderConfigArg.forwardSeedConfirmationRange,

Examples/Python/src/TrackFinding.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,8 +164,9 @@ void addTrackFinding(Context& ctx) {
164164
helixCutTolerance, sigmaScattering, radLengthPerSeed, maxPtScattering,
165165
toleranceParam, deltaInvHelixDiameter, compatSeedWeight,
166166
impactWeightFactor, zOriginWeightFactor, maxSeedsPerSpM, compatSeedLimit,
167-
seedWeightIncrement, numSeedIncrement, seedConfirmation,
168-
centralSeedConfirmationRange, forwardSeedConfirmationRange, useExtraCuts);
167+
seedWeightIncrement, numSeedIncrement, useDeltaRinsteadOfTopRadius,
168+
seedConfirmation, centralSeedConfirmationRange,
169+
forwardSeedConfirmationRange, useExtraCuts);
169170

170171
ACTS_PYTHON_DECLARE_ALGORITHM(ActsExamples::SeedingOrthogonalAlgorithm, mex,
171172
"SeedingOrthogonalAlgorithm", inputSpacePoints,

0 commit comments

Comments
 (0)