8 #ifndef LAR_SLIDING_CONE_CLUSTER_MOP_UP_ALGORITHM_H
9 #define LAR_SLIDING_CONE_CLUSTER_MOP_UP_ALGORITHM_H 1
13 #include <unordered_map>
43 ClusterMerge(
const pandora::Cluster *
const pParentCluster,
const float boundedFraction,
const float meanRT);
83 pandora::StatusCode
Run();
92 typedef std::unordered_map<const pandora::Cluster *, const pandora::ParticleFlowObject *>
ClusterToPfoMap;
109 typedef std::unordered_map<const pandora::Cluster *, ClusterMergeList>
ClusterMergeMap;
130 pandora::StatusCode
ReadSettings(
const pandora::TiXmlHandle xmlHandle);
150 const pandora::Cluster *
const pParentCluster,
const float boundedFraction,
const float meanRT) :
151 m_pParentCluster(pParentCluster),
152 m_boundedFraction(boundedFraction),
161 return m_pParentCluster;
168 return m_boundedFraction;
180 #endif // #ifndef LAR_SLIDING_CONE_CLUSTER_MOP_UP_ALGORITHM_H
bool m_useVertex
Whether to use the interaction vertex to select useful cone directions.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
float m_boundedFraction
The bounded fraction for algorithm-specified cone angle.
void GetThreeDClusters(pandora::ClusterVector &clusters3D, ClusterToPfoMap &clusterToPfoMap) const
Get all 3d clusters contained in the input pfo lists and a mapping from clusters to pfos...
unsigned int m_nConeFits
The number of cone fits to perform, spread roughly uniformly along the shower length.
const pandora::Cluster * GetParentCluster() const
Get the address of the candidate parent (shower) cluster.
unsigned int m_maxIterations
The maximum allowed number of algorithm iterations.
float GetMeanRT() const
Get the mean transverse distance of all hits (whether contained or not)
float GetBoundedFraction() const
Get the bounded fraction for algorithm-specified cone angle.
unsigned int m_nConeFitLayers
The number of layers over which to sum fitted direction to obtain cone fit.
std::unordered_map< const pandora::Cluster *, ClusterMergeList > ClusterMergeMap
unsigned int m_maxHitsToConsider2DCluster
The maximum number of hits in a 2d cluster to allow pick-up via sliding cone fits.
float m_meanRT
The mean transverse distance of all hits (whether contained or not)
void GetClusterMergeMap(const pandora::Vertex *const pVertex, const pandora::ClusterVector &clusters3D, const pandora::ClusterVector &availableClusters2D, ClusterMergeMap &clusterMergeMap) const
Get the cluster merge map describing all potential 3d cluster merges.
float m_coneLengthMultiplier
The cone length multiplier to use when calculating bounded cluster fractions.
unsigned int m_halfWindowLayers
The number of layers to use for half-window of sliding fit.
SlidingConeClusterMopUpAlgorithm()
Default constructor.
unsigned int m_minHitsToConsider3DShower
The minimum number of hits in a 3d shower cluster to attempt cone fits.
PfoMopUpBaseAlgorithm class.
unsigned int m_maxHitsToConsider3DTrack
The maximum number of hits in a 3d track cluster to warrant inclusion in algorithm.
void MakeClusterMerges(const ClusterToPfoMap &clusterToPfoMap, const ClusterMergeMap &clusterMergeMap) const
Make cluster merges based on the provided cluster merge map.
ClusterMerge(const pandora::Cluster *const pParentCluster, const float boundedFraction, const float meanRT)
Constructor.
const pandora::Cluster * m_pParentCluster
The address of the candidate parent (shower) cluster.
std::vector< ClusterMerge > ClusterMergeList
float m_coneBoundedFraction
The minimum cluster bounded fraction for association.
pandora::StringVector m_inputPfoListNames
The input pfo list names.
Header file for the pfo mop up algorithm base class.
std::unordered_map< const pandora::Cluster *, const pandora::ParticleFlowObject * > ClusterToPfoMap
float m_coneTanHalfAngle
The cone tan half angle to use when calculating bounded cluster fractions.
void GetAvailableTwoDClusters(pandora::ClusterVector &availableClusters2D) const
Get all available 2d clusters contained in the input cluster lists.
void GetInteractionVertex(const pandora::Vertex *&pVertex) const
Get the neutrino interaction vertex if it is available and if the algorithm is configured to do so...
std::vector< art::Ptr< recob::Cluster > > ClusterVector
float m_maxConeLength
The maximum allowed cone length to use when calculating bounded cluster fractions.
SlidingConeClusterMopUpAlgorithm class.
pandora::StatusCode Run()
bool operator<(const ClusterMerge &rhs) const
operator <