File SeedFilter.hpp

namespace Acts

Note

This file is foreseen for the Geometry module to replace Extent

template<typename external_spacepoint_t>
class SeedFilter
#include <Acts/Seeding/SeedFilter.hpp>

Filter seeds at various stages with the currently available information.

Public Functions

SeedFilter(SeedFilterConfig config, IExperimentCuts<external_spacepoint_t> *expCuts = 0)
SeedFilter() = delete
virtual ~SeedFilter() = default
virtual void checkReplaceSeeds(InternalSpacePoint<external_spacepoint_t> &bottomSP, InternalSpacePoint<external_spacepoint_t> &middleSP, InternalSpacePoint<external_spacepoint_t> &topSp, float zOrigin, bool isQualitySeed, float weight, std::vector<std::pair<float, std::unique_ptr<const InternalSeed<external_spacepoint_t>>>> &outCont) const

Check if there is a lower quality seed that can be replaced.

Parameters
  • bottomSP – fixed bottom space point

  • middleSP – fixed middle space point

  • topSp – fixed top space point

  • zOrigin – on the z axis as defined by bottom and middle space point

  • isQualitySeed – information whether the seed is quality confirmed or not

  • weight – weight of the seed

  • outCont – container for the seeds

virtual void filterSeeds_1SpFixed(std::vector<std::pair<float, std::unique_ptr<const InternalSeed<external_spacepoint_t>>>> &seedsPerSpM, int &numQualitySeeds, std::back_insert_iterator<std::vector<Seed<external_spacepoint_t>>> outIt) const

Filter seeds once all seeds for one middle space point have been created.

Parameters
  • seedsPerSpM – vector of pairs containing weight and seed for all

  • numQualitySeeds – number of high quality seeds in seed confirmation

  • outIt – Output iterator for the seeds for all seeds with the same middle space point

virtual void filterSeeds_2SpFixed(InternalSpacePoint<external_spacepoint_t> &bottomSP, InternalSpacePoint<external_spacepoint_t> &middleSP, std::vector<InternalSpacePoint<external_spacepoint_t>*> &topSpVec, std::vector<float> &invHelixDiameterVec, std::vector<float> &impactParametersVec, float zOrigin, int &numQualitySeeds, int &numSeeds, std::vector<std::pair<float, std::unique_ptr<const InternalSeed<external_spacepoint_t>>>> &outCont) const

Create InternalSeeds for the all seeds with the same bottom and middle space point and discard all others.

Parameters
  • bottomSP – fixed bottom space point

  • middleSP – fixed middle space point

  • topSpVec – vector containing all space points that may be compatible with both bottom and middle space point

  • invHelixDiameterVec – vector containing 1/(2*r) values where r is the helix radius

  • impactParametersVec – vector containing the impact parameters

  • zOrigin – on the z axis as defined by bottom and middle space point

  • numQualitySeeds – number of high quality seeds in seed confirmation

  • numSeeds – number of seeds that did not pass the quality confirmation but were still accepted, if quality confirmation is not used this is the total number of seeds

  • outCont – Output container for the seeds

inline const IExperimentCuts<external_spacepoint_t> *getExperimentCuts() const
inline const SeedFilterConfig getSeedFilterConfig() const

Private Members

const SeedFilterConfig m_cfg
const IExperimentCuts<external_spacepoint_t> *m_experimentCuts