Pandora
Pandora source code navigator
Loading...
Searching...
No Matches
TrackManager.h
Go to the documentation of this file.
1
8#ifndef PANDORA_TRACK_MANAGER_H
9#define PANDORA_TRACK_MANAGER_H 1
10
12
15
16namespace pandora
17{
18
22class TrackManager : public InputObjectManager<Track>
23{
24public:
30 TrackManager(const Pandora *const pPandora);
31
36
37private:
45 StatusCode Create(const object_creation::Track::Parameters &parameters, const Track *&pTrack,
47
55 template <typename T>
56 bool IsAvailable(const T *const pT) const;
57
64 template <typename T>
65 void SetAvailability(const T *const pT, bool isAvailable) const;
66
71
78
83
90 StatusCode SetTrackParentDaughterRelationship(const Uid parentUid, const Uid daughterUid);
91
98 StatusCode SetTrackSiblingRelationship(const Uid firstSiblingUid, const Uid secondSiblingUid);
99
104
109
114
121 StatusCode SetAssociatedCluster(const Track *const pTrack, const Cluster *const pCluster) const;
122
129 StatusCode RemoveAssociatedCluster(const Track *const pTrack, const Cluster *const pCluster) const;
130
135
142
148 StatusCode RemoveClusterAssociations(const TrackList &trackList) const;
149
157 StatusCode InitializeReclustering(const Algorithm *const pAlgorithm, const TrackList &trackList,
158 const std::string &originalReclusterListName);
159
160 typedef std::unordered_map<Uid, const Track *> UidToTrackMap;
161 typedef std::unordered_multimap<Uid, Uid> TrackRelationMap;
162
166
167 friend class PandoraApiImpl;
169 friend class PandoraImpl;
170};
171
172} // namespace pandora
173
174#endif // #ifndef PANDORA_TRACK_MANAGER_H
Header file for the input object manager class.
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...
Definition Algorithm.h:21
Cluster class.
Definition Cluster.h:31
InputObjectManager class.
ObjectFactory class responsible for extended pandora object creation.
PandoraApiImpl class.
PandoraContentApiImpl class.
Pandora class.
Definition Pandora.h:40
PandoraImpl class.
Definition PandoraImpl.h:18
Track class.
Definition Track.h:26
TrackManager 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 &parameters, 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
const void * Uid
MANAGED_CONTAINER< const Track * > TrackList
std::unordered_map< const Track *, const Cluster * > TrackToClusterMap
StatusCode
The StatusCode enum.
std::unordered_map< Uid, MCParticleWeightMap > UidToMCParticleWeightMap