File Seedfinder.hpp

namespace Acts

Note

This file is foreseen for the Geometry module to replace Extent

template<typename external_spacepoint_t, typename platform_t = void*>
class Seedfinder
#include <Acts/Seeding/Seedfinder.hpp>

Disallow default instantiation, copy, assignment

Seedfinder() = delete
Seedfinder(const Seedfinder<external_spacepoint_t, platform_t>&) = delete
Seedfinder<external_spacepoint_t, platform_t> &operator=(const Seedfinder<external_spacepoint_t, platform_t>&) = delete

Public Functions

Seedfinder(Acts::SeedfinderConfig<external_spacepoint_t> config)

The only constructor.

Requires a config object.

Parameters

config – the configuration for the Seedfinder

~Seedfinder() = default
template<template<typename...> typename container_t, typename sp_range_t>
void createSeedsForGroup(State &state, std::back_insert_iterator<container_t<Seed<external_spacepoint_t>>> outIt, sp_range_t bottomSPs, sp_range_t middleSPs, sp_range_t topSPs, Extent rRangeSPExtent) const

Create all seeds from the space points in the three iterators.

Can be used to parallelize the seed creation

Note

Ranges must return pointers.

Note

Ranges must be separate objects for each parallel call.

Parameters
  • state – State object that holds memory used

  • 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.

  • rRangeSPExtent – extent containing r values of all SP.

template<typename sp_range_t>
std::vector<Seed<external_spacepoint_t>> createSeedsForGroup(sp_range_t bottomSPs, sp_range_t middleSPs, 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.

Note

This method is a very simply wrapper around the more modern API.

Warning

The performance of the seeding code is far greater if the new API is used, and this is recommended for all new uses which do not require backwards-compatibility.

Template Parameters

sp_range_t – container type for the seed point collections.

Parameters
  • 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.

Returns

a vector of seeds.

Private Members

Acts::SeedfinderConfig<external_spacepoint_t> m_config
struct State
#include <Acts/Seeding/Seedfinder.hpp>

Public Members

std::vector<InternalSpacePoint<external_spacepoint_t>*> compatBottomSP
std::vector<InternalSpacePoint<external_spacepoint_t>*> compatTopSP
std::vector<float> curvatures
std::vector<float> etaVec
std::vector<float> impactParameters
std::vector<LinCircle> linCircleBottom
std::vector<LinCircle> linCircleTop
std::vector<float> ptVec
std::vector<std::pair<float, std::unique_ptr<const InternalSeed<external_spacepoint_t>>>> seedsPerSpM
std::vector<InternalSpacePoint<external_spacepoint_t>*> topSpVec