Pandora
Pandora source code navigator
Loading...
Searching...
No Matches
ClusterManager.h
Go to the documentation of this file.
1
8#ifndef PANDORA_CLUSTER_MANAGER_H
9#define PANDORA_CLUSTER_MANAGER_H 1
10
12
15
16namespace pandora
17{
18
23{
24public:
30 ClusterManager(const Pandora *const pPandora);
31
36
37private:
45 StatusCode Create(const object_creation::Cluster::Parameters &parameters, const Cluster *&pCluster,
47
54 StatusCode AlterMetadata(const Cluster *const pCluster, const object_creation::Cluster::Metadata &metadata) const;
55
63 template <typename T>
64 bool IsAvailable(const T *const pT) const;
65
72 template <typename T>
73 void SetAvailability(const T *const pT, bool isAvailable) const;
74
81 StatusCode AddToCluster(const Cluster *const pCluster, const CaloHit *const pCaloHit);
82
89 StatusCode RemoveFromCluster(const Cluster *const pCluster, const CaloHit *const pCaloHit);
90
98 StatusCode AddIsolatedToCluster(const Cluster *const pCluster, const CaloHit *const pCaloHit);
99
106 StatusCode RemoveIsolatedFromCluster(const Cluster *const pCluster, const CaloHit *const pCaloHit);
107
116 StatusCode MergeAndDeleteClusters(const Cluster *const pClusterToEnlarge, const Cluster *const pClusterToDelete,
117 const std::string &enlargeListName, const std::string &deleteListName);
118
125 StatusCode AddTrackAssociation(const Cluster *const pCluster, const Track *const pTrack) const;
126
133 StatusCode RemoveTrackAssociation(const Cluster *const pCluster, const Track *const pTrack) const;
134
139
146
152 StatusCode RemoveTrackAssociations(const TrackToClusterMap &trackToClusterList) const;
153
155 friend class PandoraImpl;
156};
157
158} // namespace pandora
159
160#endif // #ifndef PANDORA_CLUSTER_MANAGER_H
Header file for the algorithm object manager class.
Header file for pandora object creation classes.
Header file defining relevant internal typedefs, sort and string conversion functions.
AlgorithmObjectManager class.
CaloHit class.
Definition CaloHit.h:26
Cluster class.
Definition Cluster.h:31
ClusterManager class.
bool IsAvailable(const T *const pT) const
Is a cluster, or a list of clusters, available to add to a particle flow object.
StatusCode RemoveFromCluster(const Cluster *const pCluster, const CaloHit *const pCaloHit)
Remove a calo hit from a cluster.
StatusCode RemoveIsolatedFromCluster(const Cluster *const pCluster, const CaloHit *const pCaloHit)
Remove an isolated calo hit from a cluster.
StatusCode RemoveTrackAssociation(const Cluster *const pCluster, const Track *const pTrack) const
Remove an association between a cluster and a track.
void SetAvailability(const T *const pT, bool isAvailable) const
Set availability of a cluster, or a list of clusters, to be added to a particle flow object.
StatusCode AddToCluster(const Cluster *const pCluster, const CaloHit *const pCaloHit)
Add a calo hit to a cluster.
StatusCode RemoveCurrentTrackAssociations(TrackList &danglingTracks) const
Remove cluster to track associations from all clusters in the current list.
StatusCode RemoveAllTrackAssociations() const
Remove all cluster to track associations.
StatusCode MergeAndDeleteClusters(const Cluster *const pClusterToEnlarge, const Cluster *const pClusterToDelete, const std::string &enlargeListName, const std::string &deleteListName)
Merge two clusters from two specified lists, enlarging one cluster and deleting the second.
StatusCode RemoveTrackAssociations(const TrackToClusterMap &trackToClusterList) const
Remove a specified list of cluster to track associations.
StatusCode AddIsolatedToCluster(const Cluster *const pCluster, const CaloHit *const pCaloHit)
Add an isolated calo hit to a cluster. This is not counted as a regular calo hit: it contributes only...
StatusCode AddTrackAssociation(const Cluster *const pCluster, const Track *const pTrack) const
Add an association between a cluster and a track.
StatusCode Create(const object_creation::Cluster::Parameters &parameters, const Cluster *&pCluster, const ObjectFactory< object_creation::Cluster::Parameters, object_creation::Cluster::Object > &factory)
Create cluster.
StatusCode AlterMetadata(const Cluster *const pCluster, const object_creation::Cluster::Metadata &metadata) const
Alter the metadata information stored in a cluster.
ObjectFactory class responsible for extended pandora object creation.
PandoraContentApiImpl class.
Pandora class.
Definition Pandora.h:40
PandoraImpl class.
Definition PandoraImpl.h:18
Track class.
Definition Track.h:26
MANAGED_CONTAINER< const Track * > TrackList
std::unordered_map< const Track *, const Cluster * > TrackToClusterMap
StatusCode
The StatusCode enum.