LArSoft  v06_85_00
Liquid Argon Software toolkit - http://larsoft.org/
ClusterMopUpBaseAlgorithm.h
Go to the documentation of this file.
1 
8 #ifndef LAR_CLUSTER_MOP_UP_BASE_ALGORITHM_H
9 #define LAR_CLUSTER_MOP_UP_BASE_ALGORITHM_H 1
10 
12 
13 #include <unordered_map>
14 
15 namespace lar_content
16 {
17 
23 {
24 public:
29 
30 protected:
31  virtual pandora::StatusCode Run();
32 
40  virtual void GetPfoClusterLists(pandora::ClusterList &clusterListU, pandora::ClusterList &clusterListV, pandora::ClusterList &clusterListW) const;
41 
49  virtual void GetDaughterClusterLists(pandora::ClusterList &clusterListU, pandora::ClusterList &clusterListV, pandora::ClusterList &clusterListW) const;
50 
60  virtual void GetClusterLists(const pandora::ClusterList &inputClusterList, const bool availabilityFlag, pandora::ClusterList &clusterListU,
61  pandora::ClusterList &clusterListV, pandora::ClusterList &clusterListW) const;
62 
69  virtual void ClusterMopUp(const pandora::ClusterList &pfoClusters, const pandora::ClusterList &remnantClusters) const = 0;
70 
71  typedef std::unordered_map<const pandora::Cluster*, float> AssociationDetails;
72  typedef std::unordered_map<const pandora::Cluster*, AssociationDetails> ClusterAssociationMap;
73 
79  virtual void MakeClusterMerges(const ClusterAssociationMap &clusterAssociationMap) const;
80 
81  virtual pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
82 
83  pandora::StringVector m_pfoListNames;
85 };
86 
87 } // namespace lar_content
88 
89 #endif // #ifndef LAR_CLUSTER_MOP_UP_BASE_ALGORITHM_H
virtual void MakeClusterMerges(const ClusterAssociationMap &clusterAssociationMap) const
Make the cluster merges specified in the cluster association map, using list name information in the ...
virtual void GetClusterLists(const pandora::ClusterList &inputClusterList, const bool availabilityFlag, pandora::ClusterList &clusterListU, pandora::ClusterList &clusterListV, pandora::ClusterList &clusterListW) const
Get the two dimensional clusters contained in an input cluster list, divided into three different vie...
std::unordered_map< const pandora::Cluster *, float > AssociationDetails
std::unordered_map< const pandora::Cluster *, AssociationDetails > ClusterAssociationMap
bool m_excludePfosContainingTracks
Whether to exclude any pfos containing clusters flagged as fixed tracks.
MopUpBaseAlgorithm class.
Header file for the mop up algorithm base class.
virtual pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
virtual void GetPfoClusterLists(pandora::ClusterList &clusterListU, pandora::ClusterList &clusterListV, pandora::ClusterList &clusterListW) const
Get the two dimensional clusters contained in the input pfo list, divided into three different views...
virtual void ClusterMopUp(const pandora::ClusterList &pfoClusters, const pandora::ClusterList &remnantClusters) const =0
Cluster mop up for a single view. This function is responsible for instructing pandora to make cluste...
pandora::StringVector m_pfoListNames
The list of pfo list names.
virtual void GetDaughterClusterLists(pandora::ClusterList &clusterListU, pandora::ClusterList &clusterListV, pandora::ClusterList &clusterListW) const
Get the two dimensional clusters contained in the input remant/daughter cluster lists, divided into three different views.