8#ifndef PANDORA_TRACK_MANAGER_H
9#define PANDORA_TRACK_MANAGER_H 1
158 const std::string &originalReclusterListName);
Header file for pandora object creation classes.
Header file defining relevant internal typedefs, sort and string conversion functions.
Algorithm class. Algorithm addresses are held only by the algorithm manager. They have a fully define...
ObjectFactory class responsible for extended pandora object creation.
PandoraContentApiImpl class.
StatusCode AssociateTracks() const
Apply track associations (parent-daughter and sibling) that have been registered with the track manag...
StatusCode RemoveClusterAssociations(const TrackList &trackList) const
Remove track to cluster associations from a specified list of tracks.
StatusCode SetTrackParentDaughterRelationship(const Uid parentUid, const Uid daughterUid)
Set a track parent-daughter relationship.
StatusCode RemoveAllMCParticleRelationships()
Remove all mc particle associations that have been registered with tracks.
StatusCode SetAssociatedCluster(const Track *const pTrack, const Cluster *const pCluster) const
Set the cluster associated with a track.
StatusCode RemoveAssociatedCluster(const Track *const pTrack, const Cluster *const pCluster) const
Remove the association of a track with a cluster.
TrackRelationMap m_parentDaughterRelationMap
The track parent-daughter relation map.
StatusCode AddParentDaughterAssociations() const
Add parent-daughter associations to tracks.
StatusCode EraseAllContent()
Erase all track manager content.
UidToTrackMap m_uidToTrackMap
The uid to track map.
StatusCode RemoveAllClusterAssociations() const
Remove all track to cluster associations.
StatusCode SetTrackSiblingRelationship(const Uid firstSiblingUid, const Uid secondSiblingUid)
Set a track sibling relationship.
std::unordered_multimap< Uid, Uid > TrackRelationMap
StatusCode AddSiblingAssociations() const
Add sibling associations to tracks.
StatusCode RemoveCurrentClusterAssociations(TrackToClusterMap &danglingClusters) const
Remove track to cluster associations from all tracks in the current list.
TrackRelationMap m_siblingRelationMap
The track sibling relation map.
StatusCode Create(const object_creation::Track::Parameters ¶meters, const Track *&pTrack, const ObjectFactory< object_creation::Track::Parameters, object_creation::Track::Object > &factory)
Create track.
StatusCode MatchTracksToMCPfoTargets(const UidToMCParticleWeightMap &trackToPfoTargetsMap)
Match tracks to their correct mc particles for particle flow.
void SetAvailability(const T *const pT, bool isAvailable) const
Set availability of a track, or a list of tracks, to be added to a particle flow object.
bool IsAvailable(const T *const pT) const
Is a track, or a list of tracks, available to add to a particle flow object.
StatusCode InitializeReclustering(const Algorithm *const pAlgorithm, const TrackList &trackList, const std::string &originalReclusterListName)
Initialize reclustering operations, preparing lists and metadata accordingly.
~TrackManager()
Destructor.
std::unordered_map< Uid, const Track * > UidToTrackMap
MANAGED_CONTAINER< const Track * > TrackList
std::unordered_map< const Track *, const Cluster * > TrackToClusterMap
StatusCode
The StatusCode enum.
std::unordered_map< Uid, MCParticleWeightMap > UidToMCParticleWeightMap