ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::AmbiguityResolutionML< AmbiguityNetwork > Class Template Reference

Generic implementation of the machine learning ambiguity resolution Contains method for data preparations. More...

#include <Acts/AmbiguityResolution/AmbiguityResolutionML.hpp>

Classes

struct  Config

Public Member Functions

 AmbiguityResolutionML (const Config &cfg, std::unique_ptr< const Logger > logger=getDefaultLogger("AmbiguityResolutionML", Logging::INFO))
 Construct the ambiguity resolution algorithm.
template<TrackContainerFrontend track_container_t, typename source_link_hash_t, typename source_link_equality_t>
std::multimap< int, std::pair< std::size_t, std::vector< std::size_t > > > mapTrackHits (const track_container_t &tracks, const source_link_hash_t &sourceLinkHash, const source_link_equality_t &sourceLinkEquality) const
 Associate the hits to the tracks.
template<TrackContainerFrontend track_container_t>
std::vector< std::size_t > solveAmbiguity (std::unordered_map< std::size_t, std::vector< std::size_t > > &clusters, const track_container_t &tracks) const
 Select the track associated with each cluster.

Detailed Description

template<AmbiguityNetworkConcept AmbiguityNetwork>
class Acts::AmbiguityResolutionML< AmbiguityNetwork >

Generic implementation of the machine learning ambiguity resolution Contains method for data preparations.

Constructor & Destructor Documentation

◆ AmbiguityResolutionML()

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

Construct the ambiguity resolution algorithm.

Parameters
cfgis the algorithm configuration
loggeris the logging instance

Member Function Documentation

◆ mapTrackHits()

template<AmbiguityNetworkConcept AmbiguityNetwork>
template<TrackContainerFrontend track_container_t, typename source_link_hash_t, typename source_link_equality_t>
std::multimap< int, std::pair< std::size_t, std::vector< std::size_t > > > Acts::AmbiguityResolutionML< AmbiguityNetwork >::mapTrackHits ( const track_container_t & tracks,
const source_link_hash_t & sourceLinkHash,
const source_link_equality_t & sourceLinkEquality ) const

Associate the hits to the tracks.

This algorithm performs the mapping of hits ID to track ID. Our final goal is too loop over all the tracks (and their associated hits) by order of decreasing number hits for this we use a multimap where the key is the number of hits as this will automatically perform the sorting.

Parameters
tracksis the input track container
sourceLinkHashis the hash function for the source link, will be used to associate to tracks
sourceLinkEqualityis the equality function for the source link used used to associated hits to tracks
Returns
an ordered list containing pairs of track ID and associated measurement ID

◆ solveAmbiguity()

template<AmbiguityNetworkConcept AmbiguityNetwork>
template<TrackContainerFrontend track_container_t>
std::vector< std::size_t > Acts::AmbiguityResolutionML< AmbiguityNetwork >::solveAmbiguity ( std::unordered_map< std::size_t, std::vector< std::size_t > > & clusters,
const track_container_t & tracks ) const

Select the track associated with each cluster.

In this algorithm the call the neural network to score the tracks and then select the track with the highest score in each cluster

Parameters
clustersis a map of clusters, each cluster correspond to a vector of track ID
tracksis the input track container
Returns
a vector of trackID corresponding tho the good tracks