8 #ifndef LAR_MATCHING_BASE_ALGORITHM_H 9 #define LAR_MATCHING_BASE_ALGORITHM_H 1 11 #include "Api/PandoraContentApi.h" 13 #include "Pandora/Algorithm.h" 15 #include <unordered_map> 31 typedef std::unordered_map<const pandora::Cluster *, pandora::ClusterList>
ClusterMergeMap;
56 virtual void UpdateForNewCluster(
const pandora::Cluster *
const pNewCluster) = 0;
63 virtual void UpdateUponDeletion(
const pandora::Cluster *
const pDeletedCluster) = 0;
72 virtual const std::string &GetClusterListName(
const pandora::HitType hitType)
const = 0;
81 virtual const pandora::ClusterList &GetInputClusterList(
const pandora::HitType hitType)
const = 0;
90 virtual const pandora::ClusterList &GetSelectedClusterList(
const pandora::HitType hitType)
const = 0;
99 virtual void CalculateOverlapResult(
const pandora::Cluster *
const pCluster1,
const pandora::Cluster *
const pCluster2,
100 const pandora::Cluster *
const pCluster3 =
nullptr) = 0;
108 virtual void SelectInputClusters(
const pandora::ClusterList *
const pInputClusterList, pandora::ClusterList &selectedClusterList)
const;
115 virtual void PrepareInputClusters(pandora::ClusterList &preparedClusterList);
124 virtual bool MakeClusterMerges(
const ClusterMergeMap &clusterMergeMap);
133 virtual bool CreateThreeDParticles(
const ProtoParticleVector &protoParticleVector);
141 virtual void SetPfoParameters(
const ProtoParticle &protoParticle, PandoraContentApi::ParticleFlowObject::Parameters &pfoParameters)
const;
148 virtual void SetPfoParticleId(PandoraContentApi::ParticleFlowObject::Parameters &pfoParameters)
const;
154 virtual void SelectAllInputClusters() = 0;
159 virtual void PrepareAllInputClusters() = 0;
164 virtual void PerformMainLoop() = 0;
169 virtual void ExamineOverlapContainer() = 0;
174 virtual void TidyUp() = 0;
176 virtual pandora::StatusCode ReadSettings(
const pandora::TiXmlHandle xmlHandle);
179 pandora::StatusCode Run();
186 #endif // #ifndef LAR_MATCHING_BASE_ALGORITHM_H std::vector< ProtoParticle > ProtoParticleVector
MatchingBaseAlgorithm class.
pandora::ClusterList m_clusterList
List of 2D clusters in a 3D proto particle.
std::unordered_map< const pandora::Cluster *, pandora::ClusterList > ClusterMergeMap
std::string m_outputPfoListName
The output pfo list name.