Skip to content

Commit

Permalink
feat: configurable maximum number of bins in SP grid (#2325)
Browse files Browse the repository at this point in the history
Protection for large number of bins which is set by default to `std::numeric_limits<int>::max()`

This comes from PR #2166, I am splitting the changes into smaller PRs.
  • Loading branch information
LuisFelipeCoelho committed Aug 10, 2023
1 parent 10b40b7 commit e9977db
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 2 deletions.
2 changes: 2 additions & 0 deletions Core/include/Acts/Seeding/SpacePointGrid.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ struct SpacePointGridConfig {
// return 1 neighbor on either side of the current phi-bin (and you want to
// cover the full phi-range of minPT), leave this at 1.
int phiBinDeflectionCoverage = 1;
// maximum number of phi bins
int maxPhiBins = 10000;
// enable non equidistant binning in z
std::vector<float> zBinEdges;
bool isInInternalUnits = false;
Expand Down
5 changes: 5 additions & 0 deletions Core/include/Acts/Seeding/SpacePointGrid.ipp
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,11 @@ Acts::SpacePointGridCreator::createGrid(
// consecutive phi bins in the seed making step.
// Each individual bin should be approximately a fraction (depending on this
// number) of the maximum expected azimutal deflection.

// set protection for large number of bins, by default it is large
if (phiBins > config.maxPhiBins) {
phiBins = config.maxPhiBins;
}
}

Acts::detail::Axis<detail::AxisType::Equidistant,
Expand Down
2 changes: 2 additions & 0 deletions Examples/Python/python/acts/examples/itk.py
Original file line number Diff line number Diff line change
Expand Up @@ -374,6 +374,7 @@ def itkSeedingAlgConfig(
phiMax = 2 * math.pi
phiBinDeflectionCoverage = 3
numPhiNeighbors = 1
maxPhiBins = 200
# only used in orthogonal seeding
deltaPhiMax = 0.025

Expand Down Expand Up @@ -575,6 +576,7 @@ def itkSeedingAlgConfig(
phiBinDeflectionCoverage=phiBinDeflectionCoverage,
phi=(phiMin, phiMax),
impactMax=impactMax,
maxPhiBins=maxPhiBins,
)
seedingAlgorithmConfigArg = SeedingAlgorithmConfigArg(
allowSeparateRMax=allowSeparateRMax,
Expand Down
6 changes: 4 additions & 2 deletions Examples/Python/python/acts/examples/reconstruction.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,10 @@
"phiBinDeflectionCoverage",
"impactMax",
"deltaRMax",
"maxPhiBins",
"phi", # (min,max)
],
defaults=[None] * 5 + [(None, None)] * 1,
defaults=[None] * 6 + [(None, None)] * 1,
)

SeedingAlgorithmConfigArg = namedtuple(
Expand Down Expand Up @@ -209,7 +210,7 @@ def addSeeding(
Defaults specified in Core/include/Acts/Seeding/SeedFinderConfig.hpp
seedFilterConfigArg : SeedFilterConfigArg(compatSeedWeight, compatSeedLimit, numSeedIncrement, seedWeightIncrement, seedConfirmation, maxSeedsPerSpMConf, maxQualitySeedsPerSpMConf, useDeltaRorTopRadius)
Defaults specified in Core/include/Acts/Seeding/SeedFilterConfig.hpp
spacePointGridConfigArg : SpacePointGridConfigArg(rMax, zBinEdges, phiBinDeflectionCoverage, phi, impactMax)
spacePointGridConfigArg : SpacePointGridConfigArg(rMax, zBinEdges, phiBinDeflectionCoverage, phi, maxPhiBins, impactMax)
SpacePointGridConfigArg settings. phi is specified as a tuple of (min,max).
Defaults specified in Core/include/Acts/Seeding/SpacePointGrid.hpp
seedingAlgorithmConfigArg : SeedingAlgorithmConfigArg(allowSeparateRMax, zBinNeighborsTop, zBinNeighborsBottom, numPhiNeighbors)
Expand Down Expand Up @@ -605,6 +606,7 @@ def addStandardSeeding(
cotThetaMax=seedFinderConfig.cotThetaMax,
phiMin=spacePointGridConfigArg.phi[0],
phiMax=spacePointGridConfigArg.phi[1],
maxPhiBins=spacePointGridConfigArg.maxPhiBins,
impactMax=spacePointGridConfigArg.impactMax,
zBinEdges=spacePointGridConfigArg.zBinEdges,
phiBinDeflectionCoverage=spacePointGridConfigArg.phiBinDeflectionCoverage,
Expand Down
1 change: 1 addition & 0 deletions Examples/Python/src/TrackFinding.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,7 @@ void addTrackFinding(Context& ctx) {
ACTS_PYTHON_MEMBER(deltaRMax);
ACTS_PYTHON_MEMBER(cotThetaMax);
ACTS_PYTHON_MEMBER(phiBinDeflectionCoverage);
ACTS_PYTHON_MEMBER(maxPhiBins);
ACTS_PYTHON_MEMBER(impactMax);
ACTS_PYTHON_MEMBER(zBinEdges);
ACTS_PYTHON_STRUCT_END();
Expand Down

0 comments on commit e9977db

Please sign in to comment.