Class Acts::GreedyAmbiguityResolution¶
-
class GreedyAmbiguityResolution¶
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.
Public Functions
-
inline GreedyAmbiguityResolution(const Config &cfg, std::unique_ptr<const Logger> logger = getDefaultLogger("GreedyAmbiguityResolution", Logging::INFO))¶
-
template<typename track_container_t, typename traj_t, template<typename> class holder_t, typename source_link_hash_t, typename source_link_equality_t>
void computeInitialState(const TrackContainer<track_container_t, traj_t, holder_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
tracks – The input track container.
state – An empty state object which is expected to be default constructed.
sourceLinkHash – A functor to acquire a hash from a given source link.
sourceLinkEquality – A functor to check equality of two source links.
-
struct Config¶
-
struct State¶
Public Members
-
std::vector<std::vector<std::size_t>> measurementsPerTrack¶
-
std::size_t numberOfTracks = {}¶
-
boost::container::flat_set<std::size_t> selectedTracks¶
-
std::vector<float> trackChi2¶
-
boost::container::flat_map<std::size_t, boost::container::flat_set<std::size_t>> tracksPerMeasurement¶
-
std::vector<int> trackTips¶
-
std::vector<std::vector<std::size_t>> measurementsPerTrack¶
-
inline GreedyAmbiguityResolution(const Config &cfg, std::unique_ptr<const Logger> logger = getDefaultLogger("GreedyAmbiguityResolution", Logging::INFO))¶