Skip to content

Commit

Permalink
compact top
Browse files Browse the repository at this point in the history
  • Loading branch information
LuisFelipeCoelho committed Mar 14, 2023
1 parent 8fad985 commit 0451aef
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 1 deletion.
18 changes: 17 additions & 1 deletion Core/include/Acts/Seeding/SeedFinder.ipp
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,9 @@ void SeedFinder<external_spacepoint_t, platform_t>::createSeedsForGroup(
seedFilterState.nTopSeedConf = rM > seedConfRange.rMaxSeedConf
? seedConfRange.nTopForLargeR
: seedConfRange.nTopForSmallR;
// set max bottom radius for seed confirmation
seedFilterState.rMaxSeedConf = seedConfRange.rMaxSeedConf;
// continue if number of top SPs is smaller than minimum
if (state.compatTopSP.size() < seedFilterState.nTopSeedConf) {
continue;
}
Expand Down Expand Up @@ -319,6 +322,18 @@ void SeedFinder<external_spacepoint_t, platform_t>::filterCandidates(
rotationTermsUVtoXY[1] = spM.y() * sinTheta / spM.radius();
}

// minimum number of compatible top SPs to trigger the filter for a certain
// middle bottom pair if seedConfirmation is false we always ask for at
// least one compatible top to trigger the filter
size_t minCompatibleTopSPs = 2;
if (!m_config.seedConfirmation or
state.compatBottomSP[b]->radius() > seedFilterState.rMaxSeedConf) {
minCompatibleTopSPs = 1;
}
if (m_config.seedConfirmation and seedFilterState.numQualitySeeds) {
minCompatibleTopSPs++;
}

for (size_t index_t = t0; index_t < numTopSP; index_t++) {
const std::size_t& t = sorted_tops[index_t];

Expand Down Expand Up @@ -538,7 +553,8 @@ void SeedFinder<external_spacepoint_t, platform_t>::filterCandidates(
state.ptVec.push_back(pT);
} // loop on tops

if (state.topSpVec.empty()) {
// continue if number of top SPs is smaller than minimum required for filter
if (state.topSpVec.size() < minCompatibleTopSPs) {
continue;
}

Expand Down
5 changes: 5 additions & 0 deletions Core/include/Acts/Seeding/SeedFinderConfig.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,11 @@ struct SeedFinderConfig {
// difference in tan(theta)
bool arithmeticAverageCotTheta = false;

// radius of bottom component of seed that is used to define the number of
// compatible top required
float rMaxSeedConf =
std::numeric_limits<float>::max(); // Acts::UnitConstants::mm

// non equidistant binning in z
std::vector<float> zBinEdges;

Expand Down

0 comments on commit 0451aef

Please sign in to comment.