8#ifndef LAR_MATCHING_BASE_ALGORITHM_H
9#define LAR_MATCHING_BASE_ALGORITHM_H 1
15#include <unordered_map>
31typedef std::unordered_map<const pandora::Cluster *, pandora::ClusterList>
ClusterMergeMap;
148 virtual void SetPfoParticleId(PandoraContentApi::ParticleFlowObject::Parameters &pfoParameters)
const;
Header file for the algorithm class.
Header file for the pandora content api class.
MatchingBaseAlgorithm class.
virtual bool MakeClusterMerges(const ClusterMergeMap &clusterMergeMap)
Merge clusters together.
virtual void UpdateForNewCluster(const pandora::Cluster *const pNewCluster)=0
Update to reflect addition of a new cluster to the problem space.
MatchingBaseAlgorithm()
Default constructor.
virtual void PrepareAllInputClusters()=0
Perform any preparatory steps required, e.g. caching expensive fit results for clusters.
virtual void SelectAllInputClusters()=0
Select a subset of input clusters for processing in this algorithm.
virtual void UpdateUponDeletion(const pandora::Cluster *const pDeletedCluster)=0
Update to reflect cluster deletion.
virtual bool CreateThreeDParticles(const ProtoParticleVector &protoParticleVector)
Create particles using findings from recent algorithm processing.
virtual ~MatchingBaseAlgorithm()
Destructor.
virtual const std::string & GetClusterListName(const pandora::HitType hitType) const =0
Get the cluster list name corresponding to a specified hit type.
virtual void TidyUp()=0
Tidy member variables in derived class.
virtual void SetPfoParameters(const ProtoParticle &protoParticle, PandoraContentApi::ParticleFlowObject::Parameters &pfoParameters) const
Set Pfo properties.
virtual const pandora::ClusterList & GetSelectedClusterList(const pandora::HitType hitType) const =0
Get the selected cluster list corresponding to a specified hit type.
std::string m_outputPfoListName
The output pfo list name.
pandora::StatusCode Run()
Run the algorithm.
virtual void CalculateOverlapResult(const pandora::Cluster *const pCluster1, const pandora::Cluster *const pCluster2, const pandora::Cluster *const pCluster3=nullptr)=0
Calculate cluster overlap result and store in container.
virtual pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
Read the algorithm settings.
virtual const pandora::ClusterList & GetInputClusterList(const pandora::HitType hitType) const =0
Get the input cluster list corresponding to a specified hit type.
virtual void ExamineOverlapContainer()=0
Examine contents of overlap container, collect together best-matching 2D particles and modify cluster...
virtual void SelectInputClusters(const pandora::ClusterList *const pInputClusterList, pandora::ClusterList &selectedClusterList) const
Select a subset of input clusters for processing in this algorithm.
virtual void SetPfoParticleId(PandoraContentApi::ParticleFlowObject::Parameters &pfoParameters) const
Set pfo particle id.
virtual void PrepareInputClusters(pandora::ClusterList &preparedClusterList)
Perform any preparatory steps required on the input clusters, e.g. caching expensive fit results.
virtual void PerformMainLoop()=0
Main loop over cluster combinations in order to populate the overlap container. Responsible for calli...
Algorithm class. Algorithm addresses are held only by the algorithm manager. They have a fully define...
std::unordered_map< const pandora::Cluster *, pandora::ClusterList > ClusterMergeMap
std::vector< ProtoParticle > ProtoParticleVector
pandora::ClusterList m_clusterList
List of 2D clusters in a 3D proto particle.
HitType
Calorimeter hit type enum.
MANAGED_CONTAINER< const Cluster * > ClusterList
StatusCode
The StatusCode enum.