29 #ifndef POINTINGCLUSTERASSOCIATIONALGORITHM_H
30 #define POINTINGCLUSTERASSOCIATIONALGORITHM_H
32 #include "Pandora/Algorithm.h"
33 #include "Pandora/PandoraInputTypes.h"
36 namespace pandora {
class ClusterFitResult; }
38 namespace april_content
50 class Factory :
public pandora::AlgorithmFactory
53 pandora::Algorithm *CreateAlgorithm()
const;
57 pandora::StatusCode Run();
58 pandora::StatusCode ReadSettings(
const pandora::TiXmlHandle xmlHandle);
73 pandora::StatusCode
FindClustersToMerge(
const pandora::ClusterVector &clusterVector, ClusterToClusterMap &clusterToClusterMap)
const;
91 pandora::StatusCode
FindBestParentCluster(
const pandora::Cluster *
const pDaughterCluster,
const pandora::ClusterVector &clusterVector,
92 const pandora::Cluster *&pBestParentCluster)
const;
101 pandora::StatusCode
GetClusterBackwardDirection(
const pandora::Cluster *
const pCluster, pandora::CartesianVector &backwardDirection, pandora::CartesianVector &innerPosition)
const;
105 bool m_allowNeutralParentMerging;
106 unsigned int m_minNCaloHits;
107 unsigned int m_maxNCaloHits;
108 unsigned int m_minNPseudoLayers;
109 unsigned int m_maxNPseudoLayers;
110 float m_chi2AssociationCut;
111 unsigned int m_nBackwardLayersFit;
112 float m_maxBackwardAngle;
113 float m_maxBackwardDistanceFine;
114 float m_maxBackwardDistanceCoarse;
115 unsigned int m_maxBackwardPseudoLayer;
116 unsigned int m_minParentClusterBackwardNHits;
117 float m_maxClusterFitDca;
118 float m_minClusterCosOpeningAngle;
119 float m_minClusterFitCosOpeningAngle;
120 float m_minClusterFitCosOpeningAngle2;
125 inline pandora::Algorithm *PointingClusterAssociationAlgorithm::Factory::CreateAlgorithm()
const
132 #endif // POINTINGCLUSTERASSOCIATIONALGORITHM_H
pandora::StatusCode FindBestParentCluster(const pandora::Cluster *const pDaughterCluster, const pandora::ClusterVector &clusterVector, const pandora::Cluster *&pBestParentCluster) const
Find the best parent cluster to merge a daughter one.
Definition: PointingClusterAssociationAlgorithm.cc:135
bool CanMergeCluster(const pandora::Cluster *const pCluster) const
Whether the cluster is eligible for association.
Definition: PointingClusterAssociationAlgorithm.cc:85
pandora::StatusCode GetEligibleClusters(pandora::ClusterVector &clusterVector) const
Get the eligible clusters for parent-daughter association.
Definition: PointingClusterAssociationAlgorithm.cc:61
Factory class for instantiating algorithm.
Definition: PointingClusterAssociationAlgorithm.h:50
PointingClusterAssociationAlgorithm class.
Definition: PointingClusterAssociationAlgorithm.h:44
pandora::StatusCode GetClusterBackwardDirection(const pandora::Cluster *const pCluster, pandora::CartesianVector &backwardDirection, pandora::CartesianVector &innerPosition) const
Get the cluster backward direction and the inner cluster position using a cluster fit of the n first ...
Definition: PointingClusterAssociationAlgorithm.cc:255
pandora::StatusCode FindClustersToMerge(const pandora::ClusterVector &clusterVector, ClusterToClusterMap &clusterToClusterMap) const
Algorithm workhorse, find associations between daughter and parent cluster.
Definition: PointingClusterAssociationAlgorithm.cc:109
bool m_discriminatePhotonPid
Whether to discriminate photons.
Definition: PointingClusterAssociationAlgorithm.h:104