22 if (pPfoToEnlarge == pPfoToDelete)
36 for (
const Vertex *
const pDaughterVertex : daughterVertices)
41 for (
const Cluster *
const pDaughterCluster : daughterClusters)
50 *
this, pParentCluster, pDaughterCluster, this->
GetListName(pParentCluster), this->
GetListName(pDaughterCluster)));
63 unsigned int mostHits(0);
64 const Cluster *pBestParentCluster(
nullptr);
66 for (
const Cluster *
const pParentCluster : clusterList)
71 const unsigned int nParentHits(pParentCluster->GetNCaloHits());
73 if (nParentHits > mostHits)
75 mostHits = nParentHits;
76 pBestParentCluster = pParentCluster;
80 return pBestParentCluster;
Header file for the cluster helper class.
Header file for the pfo mop up algorithm base class.
#define PANDORA_THROW_RESULT_IF(StatusCode1, Operator, Command)
static pandora::StatusCode AddToPfo(const pandora::Algorithm &algorithm, const pandora::ParticleFlowObject *const pPfo, const T *const pT)
Add a cluster to a particle flow object.
static pandora::StatusCode MergeAndDeleteClusters(const pandora::Algorithm &algorithm, const pandora::Cluster *const pClusterToEnlarge, const pandora::Cluster *const pClusterToDelete)
Merge two clusters in the current list, enlarging one cluster and deleting the second.
static pandora::StatusCode SetPfoParentDaughterRelationship(const pandora::Algorithm &algorithm, const pandora::ParticleFlowObject *const pParentPfo, const pandora::ParticleFlowObject *const pDaughterPfo)
Set parent-daughter particle flow object relationship.
static pandora::StatusCode Delete(const pandora::Algorithm &algorithm, const T *const pT)
Delete an object from the current list.
static pandora::HitType GetClusterHitType(const pandora::Cluster *const pCluster)
Get the hit type associated with a two dimensional cluster.
virtual pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
Read the algorithm settings.
const std::string GetListName(const T *const pT) const
Find the name of the list hosting a specific object.
virtual pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
Read the algorithm settings.
virtual void MergeAndDeletePfos(const pandora::ParticleFlowObject *const pPfoToEnlarge, const pandora::ParticleFlowObject *const pPfoToDelete) const
Merge and delete a pair of pfos, with a specific set of conventions for cluster merging,...
static const pandora::Cluster * GetParentCluster(const pandora::ClusterList &clusterList, const pandora::HitType hitType)
Select the parent cluster (same hit type and most hits) using a provided cluster list and hit type.
ParticleFlowObject class.
const PfoList & GetDaughterPfoList() const
Get the daughter pfo list.
const ClusterList & GetClusterList() const
Get the cluster list.
const VertexList & GetVertexList() const
Get the vertex list.
StatusCodeException class.
HitType
Calorimeter hit type enum.
std::vector< const Cluster * > ClusterVector
MANAGED_CONTAINER< const Cluster * > ClusterList
StatusCode
The StatusCode enum.
MANAGED_CONTAINER< const ParticleFlowObject * > PfoList
std::vector< const Vertex * > VertexVector