Analysis Software
Documentation for sPHENIX simulation software
|
#include <acts/blob/sPHENIX/Core/include/Acts/Seeding/SeedFinder.hpp>
Classes | |
struct | SeedingState |
Public Member Functions | |
SeedFinder (const Acts::SeedFinderConfig< external_spacepoint_t > &config) | |
~SeedFinder ()=default | |
template<template< typename...> typename container_t, typename sp_range_t > | |
void | createSeedsForGroup (const Acts::SeedFinderOptions &options, SeedingState &state, const Acts::SpacePointGrid< external_spacepoint_t > &grid, std::back_insert_iterator< container_t< Seed< external_spacepoint_t >>> outIt, const sp_range_t &bottomSPs, const std::size_t middleSPs, const sp_range_t &topSPs, const Acts::Range1D< float > &rMiddleSPRange) const |
template<typename sp_range_t > | |
std::vector< Seed < external_spacepoint_t > > | createSeedsForGroup (const Acts::SeedFinderOptions &options, const Acts::SpacePointGrid< external_spacepoint_t > &grid, const sp_range_t &bottomSPs, const std::size_t middleSPs, const sp_range_t &topSPs) const |
Compatibility method for the new-style seed finding API. | |
Disallow default instantiation, copy, assignment | |
SeedFinder ()=default | |
SeedFinder (const SeedFinder< external_spacepoint_t, platform_t > &)=delete | |
SeedFinder < external_spacepoint_t, platform_t > & | operator= (const SeedFinder< external_spacepoint_t, platform_t > &)=default |
Private Member Functions | |
template<Acts::SpacePointCandidateType candidateType, typename out_range_t > | |
void | getCompatibleDoublets (Acts::SpacePointData &spacePointData, const Acts::SeedFinderOptions &options, const Acts::SpacePointGrid< external_spacepoint_t > &grid, boost::container::small_vector< Neighbour< external_spacepoint_t >, 9 > &otherSPsNeighbours, const InternalSpacePoint< external_spacepoint_t > &mediumSP, std::vector< LinCircle > &linCircleVec, out_range_t &outVec, const float deltaRMinSP, const float deltaRMaxSP, const float uIP, const float uIP2, const float cosPhiM, const float sinPhiM) const |
template<Acts::DetectorMeasurementInfo detailedMeasurement> | |
void | filterCandidates (Acts::SpacePointData &spacePointData, const InternalSpacePoint< external_spacepoint_t > &SpM, const Acts::SeedFinderOptions &options, SeedFilterState &seedFilterState, SeedingState &state) const |
Private Attributes | |
Acts::SeedFinderConfig < external_spacepoint_t > | m_config |
Definition at line 40 of file SeedFinder.hpp.
View newest version in sPHENIX GitHub at line 40 of file SeedFinder.hpp
Acts::SeedFinder< external_spacepoint_t, platform_t >::SeedFinder | ( | const Acts::SeedFinderConfig< external_spacepoint_t > & | config | ) |
The only constructor. Requires a config object.
config | the configuration for the SeedFinder |
Definition at line 17 of file SeedFinder.ipp.
View newest version in sPHENIX GitHub at line 17 of file SeedFinder.ipp
References Acts::SeedFinderConfig< SpacePoint >::deltaRMaxBottomSP, Acts::SeedFinderConfig< SpacePoint >::deltaRMaxTopSP, Acts::SeedFinderConfig< SpacePoint >::deltaRMinBottomSP, Acts::SeedFinderConfig< SpacePoint >::deltaRMinTopSP, and Acts::SeedFinderConfig< SpacePoint >::isInInternalUnits.
|
default |
|
default |
|
delete |
void Acts::SeedFinder< external_spacepoint_t, platform_t >::createSeedsForGroup | ( | const Acts::SeedFinderOptions & | options, |
SeedingState & | state, | ||
const Acts::SpacePointGrid< external_spacepoint_t > & | grid, | ||
std::back_insert_iterator< container_t< Seed< external_spacepoint_t >>> | outIt, | ||
const sp_range_t & | bottomSPs, | ||
const std::size_t | middleSPs, | ||
const sp_range_t & | topSPs, | ||
const Acts::Range1D< float > & | rMiddleSPRange | ||
) | const |
Create all seeds from the space points in the three iterators. Can be used to parallelize the seed creation
options | frequently changing configuration (like beam position) |
state | State object that holds memory used |
grid | The grid with space points |
outIt | Output iterator for the seeds in the group |
bottomSPs | group of space points to be used as innermost SP in a seed. |
middleSPs | group of space points to be used as middle SP in a seed. |
topSPs | group of space points to be used as outermost SP in a seed. |
rMiddleSPRange | range object containing the minimum and maximum r for middle SP for a certain z bin. |
get zBin position of the middle SP
protects against zM at the limit of zBinEdges
Definition at line 40 of file SeedFinder.ipp.
View newest version in sPHENIX GitHub at line 40 of file SeedFinder.ipp
References Acts::detail::Grid< T, Axes >::at(), Acts::SeedFinder< external_spacepoint_t, platform_t >::SeedingState::bottomNeighbours, Acts::SeedFinder< external_spacepoint_t, platform_t >::SeedingState::candidates_collector, Acts::SeedFinder< external_spacepoint_t, platform_t >::SeedingState::compatBottomSP, Acts::SeedFinder< external_spacepoint_t, platform_t >::SeedingState::compatTopSP, distance(), grid(), ambiguity_solver_full_chain::idx, Acts::if(), Acts::SeedFinderOptions::isInInternalUnits, Acts::SeedFinder< external_spacepoint_t, platform_t >::SeedingState::linCircleBottom, Acts::SeedFinder< external_spacepoint_t, platform_t >::SeedingState::linCircleTop, Acts::Range1D< Type >::max(), Acts::Range1D< Type >::min(), Acts::SeedConfirmationRangeConfig::nTopForLargeR, Acts::SeedConfirmationRangeConfig::nTopForSmallR, Acts::SeedFilterState::nTopSeedConf, Acts::SeedFilterState::numQualitySeeds, ckf::options, Acts::SeedConfirmationRangeConfig::rMaxSeedConf, Acts::SeedFilterState::rMaxSeedConf, Acts::CandidatesForMiddleSp< external_space_point_t >::setMaxElements(), Acts::SeedFinder< external_spacepoint_t, platform_t >::SeedingState::spacePointData, filter::state, and Acts::SeedFinder< external_spacepoint_t, platform_t >::SeedingState::topNeighbours.
Referenced by main(), and PHActsSiliconSeeding::runSeeder().
std::vector< Seed< external_spacepoint_t > > Acts::SeedFinder< external_spacepoint_t, platform_t >::createSeedsForGroup | ( | const Acts::SeedFinderOptions & | options, |
const Acts::SpacePointGrid< external_spacepoint_t > & | grid, | ||
const sp_range_t & | bottomSPs, | ||
const std::size_t | middleSPs, | ||
const sp_range_t & | topSPs | ||
) | const |
Compatibility method for the new-style seed finding API.
This method models the old-style seeding API where we only need a container for the bottom, middle, and top space points. Also, the results are returned by value instead of inserted into an inserter.
sp_range_t | container type for the seed point collections. |
options | frequently changing configuration (like beam position) |
grid | The grid with space points |
bottomSPs | group of space points to be used as innermost SP in a seed. |
middleSPs | group of space points to be used as middle SP in a seed. |
topSPs | group of space points to be used as outermost SP in a seed. |
Definition at line 802 of file SeedFinder.ipp.
View newest version in sPHENIX GitHub at line 802 of file SeedFinder.ipp
References filter::state.
|
inlineprivate |
Iterates over the seed candidates tests the compatibility between three SPs and calls for the seed confirmation
spacePointData | object containing the spacepoint data |
SpM | space point candidate to be used as middle SP in a seed |
options | frequently changing configuration (like beam position) |
seedFilterState | State object that holds memory used in SeedFilter |
state | State object that holds memory used |
Definition at line 440 of file SeedFinder.ipp.
View newest version in sPHENIX GitHub at line 440 of file SeedFinder.ipp
References KFPMath::a, A, KFPMath::b, Acts::SeedFinder< external_spacepoint_t, platform_t >::SeedingState::candidates_collector, Acts::CandidatesForMiddleSp< external_space_point_t >::clear(), Acts::SeedFinder< external_spacepoint_t, platform_t >::SeedingState::compatBottomSP, Acts::SeedFinder< external_spacepoint_t, platform_t >::SeedingState::compatTopSP, Acts::SeedFinder< external_spacepoint_t, platform_t >::SeedingState::curvatures, i, Acts::if(), Acts::SeedFinder< external_spacepoint_t, platform_t >::SeedingState::impactParameters, Acts::SeedFinder< external_spacepoint_t, platform_t >::SeedingState::linCircleBottom, Acts::SeedFinder< external_spacepoint_t, platform_t >::SeedingState::linCircleTop, Acts::SeedFinderOptions::minHelixDiameter2, Acts::SeedFinderOptions::multipleScattering2, Acts::SeedFilterState::numQualitySeeds, Acts::SeedFinderOptions::pTPerHelixRadius, Acts::InternalSpacePoint< SpacePoint >::radius(), Acts::SeedFilterState::rMaxSeedConf, Acts::SeedFinderOptions::sigmapT2perRadius, Acts::Experimental::detail::BlueprintHelper::sort(), Acts::SeedFinder< external_spacepoint_t, platform_t >::SeedingState::spacePointData, filter::state, t, Acts::SeedFinder< external_spacepoint_t, platform_t >::SeedingState::topSpVec, Acts::InternalSpacePoint< SpacePoint >::varianceR(), Acts::InternalSpacePoint< SpacePoint >::varianceZ(), Acts::InternalSpacePoint< SpacePoint >::x(), Acts::xyzCoordinateCheck(), Acts::InternalSpacePoint< SpacePoint >::y(), Acts::InternalSpacePoint< SpacePoint >::z(), and Acts::SeedFilterState::zOrigin.
|
inlineprivate |
Iterates over dublets and tests the compatibility between them by applying a series of cuts that can be tested with only two SPs
spacePointData | object containing the spacepoint data |
options | frequently changing configuration (like beam position) |
grid | spacepoint grid |
otherSPsNeighbours | inner or outer space points to be used in the dublet |
mediumSP | space point candidate to be used as middle SP in a seed |
linCircleVec | vector containing inner or outer SP parameters after reference frame transformation to the u-v space |
outVec | Output object containing top or bottom SPs that are compatible with a certain middle SPs |
deltaRMinSP | minimum allowed r-distance between dublet components |
deltaRMaxSP | maximum allowed r-distance between dublet components |
uIP | minus one over radius of middle SP |
uIP2 | square of uIP |
cosPhiM | ratio between middle SP x position and radius |
sinPhiM | ratio between middle SP y position and radius |
Definition at line 198 of file SeedFinder.ipp.
View newest version in sPHENIX GitHub at line 198 of file SeedFinder.ipp
References Acts::detail::Grid< T, Axes >::at(), physmon_track_finding_ttbar::deltaR, physmon_track_finding_ttbar::impactMax, Acts::SeedFinderOptions::minHelixDiameter2, Acts::InternalSpacePoint< SpacePoint >::radius(), Acts::SpacePointData::setDeltaR(), Acts::InternalSpacePoint< SpacePoint >::varianceR(), Acts::InternalSpacePoint< SpacePoint >::varianceZ(), Acts::InternalSpacePoint< SpacePoint >::x(), Acts::InternalSpacePoint< SpacePoint >::y(), and Acts::InternalSpacePoint< SpacePoint >::z().
|
default |
|
private |
Definition at line 177 of file SeedFinder.hpp.
View newest version in sPHENIX GitHub at line 177 of file SeedFinder.hpp
Referenced by Acts::SeedFinder< external_spacepoint_t, Acts::Cuda >::createSeedsForGroup(), and Acts::SeedFinder< external_spacepoint_t, Acts::Cuda >::SeedFinder().