8 #ifndef LAR_CLUSTER_MERGING_ALGORITHM_H 9 #define LAR_CLUSTER_MERGING_ALGORITHM_H 1 11 #include "Pandora/Algorithm.h" 13 #include <unordered_map> 24 virtual pandora::StatusCode
Run();
25 virtual pandora::StatusCode
ReadSettings(
const pandora::TiXmlHandle xmlHandle);
27 typedef std::unordered_map<const pandora::Cluster *, pandora::ClusterList>
ClusterMergeMap;
61 pandora::ClusterList &associatedClusterList)
const;
73 const ClusterMergeMap &clusterMergeMap,
const pandora::ClusterSet &clusterVetoList, pandora::ClusterList &associatedClusterList)
const;
88 #endif // #ifndef LAR_CLUSTER_MERGING_ALGORITHM_H
std::string m_inputClusterListName
The name of the input cluster list. If not specified, will access current list.
virtual void GetListOfCleanClusters(const pandora::ClusterList *const pClusterList, pandora::ClusterVector &clusterVector) const =0
Populate cluster vector with subset of cluster list, containing clusters judged to be clean...
virtual pandora::StatusCode Run()
virtual void PopulateClusterMergeMap(const pandora::ClusterVector &clusterVector, ClusterMergeMap &clusterMergeMap) const =0
Form associations between pointing clusters.
void MergeClusters(pandora::ClusterVector &clusterVector, ClusterMergeMap &clusterMergeMap) const
Merge associated clusters.
void GetSortedListOfCleanClusters(const pandora::ClusterVector &inputClusters, pandora::ClusterVector &outputClusters) const
Sort the selected clusters, so that they have a well-defined ordering.
std::unordered_map< const pandora::Cluster *, pandora::ClusterList > ClusterMergeMap
std::vector< art::Ptr< recob::Cluster > > ClusterVector
void CollectAssociatedClusters(const pandora::Cluster *const pSeedCluster, const ClusterMergeMap &clusterMergeMap, pandora::ClusterList &associatedClusterList) const
Collect up all clusters associations related to a given seed cluster.
virtual pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
ClusterMergingAlgorithm class.