ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::GreedyAmbiguityResolution Class Reference

Evicts tracks that seem to be duplicates or fakes. More...

#include <Acts/AmbiguityResolution/GreedyAmbiguityResolution.hpp>

Classes

struct  Config
struct  State

Public Member Functions

 GreedyAmbiguityResolution (const Config &cfg, std::unique_ptr< const Logger > logger=getDefaultLogger("GreedyAmbiguityResolution", Logging::INFO))
 Constructor with configuration and logger.
template<TrackContainerFrontend track_container_t, typename source_link_hash_t, typename source_link_equality_t>
void computeInitialState (const track_container_t &tracks, State &state, source_link_hash_t &&sourceLinkHash, source_link_equality_t &&sourceLinkEquality) const
 Computes the initial state for the input data.
void resolve (State &state) const
 Updates the state iteratively by evicting one track after the other until the final state conditions are met.

Detailed Description

Evicts tracks that seem to be duplicates or fakes.

This algorithm takes a greedy approach in the sense that it will remove the track which looks "most duplicate/fake" first and continues the same process with the rest. That process continues until the final state conditions are met.

The implementation works as follows: 1) Calculate shared hits per track. 2) If the maximum shared hits criteria is met, we are done. This is the configurable amount of shared hits we are ok with in our experiment. 3) Else, remove the track with the highest relative shared hits (i.e. shared hits / hits). 4) Back to square 1.

Constructor & Destructor Documentation

◆ GreedyAmbiguityResolution()

Acts::GreedyAmbiguityResolution::GreedyAmbiguityResolution ( const Config & cfg,
std::unique_ptr< const Logger > logger = getDefaultLogger("GreedyAmbiguityResolution", Logging::INFO) )
explicit

Constructor with configuration and logger.

Parameters
cfgConfiguration for ambiguity resolution
loggerLogger for diagnostic output

Member Function Documentation

◆ computeInitialState()

template<TrackContainerFrontend track_container_t, typename source_link_hash_t, typename source_link_equality_t>
void Acts::GreedyAmbiguityResolution::computeInitialState ( const track_container_t & tracks,
State & state,
source_link_hash_t && sourceLinkHash,
source_link_equality_t && sourceLinkEquality ) const

Computes the initial state for the input data.

This function accumulates information that will later be used to accelerate the ambiguity resolution.

Parameters
tracksThe input track container.
stateAn empty state object which is expected to be default constructed.
sourceLinkHashA functor to acquire a hash from a given source link.
sourceLinkEqualityA functor to check equality of two source links.

◆ resolve()

void Acts::GreedyAmbiguityResolution::resolve ( State & state) const

Updates the state iteratively by evicting one track after the other until the final state conditions are met.

Parameters
stateA state object that was previously filled by the initialization.