22 m_minCaloHitsPerCluster(2),
23 m_minSeedClusterCaloHits(5),
24 m_maxSeedClusterLength(10.f),
25 m_maxSeedClusterDisplacement(1.5f)
33 for (
const Cluster *
const pCluster : *pClusterList)
38 clusterVector.push_back(pCluster);
48 if (inputClusters.empty())
60 for (
const Pfo *
const pParentPfo : parentPfos)
63 for (
const Pfo *
const pDaughterPfo : daughterPfos)
67 for (
const Cluster *
const pCluster : parentClusters)
70 seedClusters.push_back(pCluster);
74 for (
const Cluster *
const pCluster : daughterClusters)
76 seedClusters.push_back(pCluster);
80 for (
const Cluster *
const pCluster : inputClusters)
85 const float parentDistance(
91 const float daughterDistance(
97 seedClusters.push_back(pCluster);
107 const PfoList *pPfoList(
nullptr);
113 for (
const Pfo *
const pPfo : *pPfoList)
114 pfoVector.push_back(pPfo);
Header file for the cluster helper class.
Header file for the pfo helper class.
#define PANDORA_THROW_RESULT_IF_AND_IF(StatusCode1, StatusCode2, Operator, Command)
#define PANDORA_RETURN_RESULT_IF_AND_IF(StatusCode1, StatusCode2, Operator, Command)
#define PANDORA_RETURN_RESULT_IF(StatusCode1, Operator, Command)
static pandora::StatusCode GetList(const pandora::Algorithm &algorithm, const std::string &listName, const T *&pT)
Get a named list.
virtual pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
Read the algorithm settings.
std::string m_daughterPfoListName
The daughter Pfo list name.
unsigned int m_minSeedClusterCaloHits
The minimum number of calo hits for seed clusters.
float m_maxSeedClusterLength
The maximum length of a parent clusters.
std::string m_parentPfoListName
The parent Pfo list name.
void GetListOfSeedClusters(const pandora::ClusterVector &inputClusters, pandora::ClusterVector &seedClusters) const
Select seed clusters for growing.
unsigned int m_minCaloHitsPerCluster
The minimum number of calo hits per candidate cluster.
void GetListOfCleanClusters(const pandora::ClusterList *const pClusterList, pandora::ClusterVector &cleanClusters) const
Populate cluster vector with the subset of clusters judged to be clean.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
Read the algorithm settings.
DeltaRayGrowingAlgorithm()
Default constructor.
void GetPfos(const std::string inputPfoListName, pandora::PfoVector &pfoVector) const
Get a vector of Pfos from an input Pfo list name.
float m_maxSeedClusterDisplacement
The maximum distance between parent and daughter clusters.
static pandora::HitType GetClusterHitType(const pandora::Cluster *const pCluster)
Get the hit type associated with a two dimensional cluster.
static bool SortByNHits(const pandora::Cluster *const pLhs, const pandora::Cluster *const pRhs)
Sort clusters by number of hits, then layer span, then inner layer, then position,...
static float GetLengthSquared(const pandora::Cluster *const pCluster)
Get length squared of cluster.
static float GetClosestDistance(const pandora::ClusterList &clusterList1, const pandora::ClusterList &clusterList2)
Get closest distance between clusters in a pair of cluster lists.
static bool SortByNHits(const pandora::ParticleFlowObject *const pLhs, const pandora::ParticleFlowObject *const pRhs)
Sort pfos by number of constituent hits.
static void GetClusters(const pandora::PfoList &pfoList, const pandora::HitType &hitType, pandora::ClusterList &clusterList)
Get a list of clusters of a particular hit type from a list of pfos.
ParticleFlowObject class.
static StatusCode ReadValue(const TiXmlHandle &xmlHandle, const std::string &xmlElementName, T &t)
Read a value from an xml element.
HitType
Calorimeter hit type enum.
std::vector< const Cluster * > ClusterVector
MANAGED_CONTAINER< const Cluster * > ClusterList
std::vector< const ParticleFlowObject * > PfoVector
StatusCode
The StatusCode enum.
MANAGED_CONTAINER< const ParticleFlowObject * > PfoList