8 #ifndef LAR_COSMIC_RAY_BASE_MATCHING_ALGORITHM_H
9 #define LAR_COSMIC_RAY_BASE_MATCHING_ALGORITHM_H 1
11 #include "Pandora/Algorithm.h"
12 #include "Pandora/AlgorithmHeaders.h"
14 #include <unordered_map>
25 pandora::StatusCode
Run();
26 pandora::StatusCode
ReadSettings(
const pandora::TiXmlHandle xmlHandle);
41 Particle(
const pandora::Cluster *
const pClusterU,
const pandora::Cluster *
const pClusterV,
const pandora::Cluster *
const pClusterW);
68 virtual bool MatchClusters(
const pandora::Cluster *
const pCluster1,
const pandora::Cluster *
const pCluster2)
const = 0;
80 const pandora::Cluster *
const pCluster1,
const pandora::Cluster *
const pCluster2,
const pandora::Cluster *
const pCluster3)
const = 0;
164 #endif // #ifndef LAR_COSMIC_RAY_BASE_MATCHING_ALGORITHM_H
std::string m_inputClusterListNameV
The name of the view V cluster list.
void BuildParticles(const ParticleList &particleList)
Build PFO objects from candidate particles.
std::vector< Particle > ParticleList
void MatchThreeViews(const CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap &matchedClusters12, const CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap &matchedClusters23, const CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap &matchedClusters31, ParticleList &particleList) const
Match clusters from three views and form into particles.
CosmicRayBaseMatchingAlgorithm class.
const pandora::Cluster * m_pClusterV
Address of cluster in V view.
virtual void SetPfoParameters(const CosmicRayBaseMatchingAlgorithm::Particle &protoParticle, PandoraContentApi::ParticleFlowObject::Parameters &pfoParameters) const =0
Calculate Pfo properties from proto particle.
virtual void SelectCleanClusters(const pandora::ClusterVector &inputVector, pandora::ClusterVector &outputVector) const =0
Select a set of clusters judged to be clean.
std::set< unsigned int > UIntSet
const pandora::Cluster * m_pClusterW
Address of cluster in W view.
pandora::StatusCode Run()
std::string m_outputPfoListName
The name of the output PFO list.
const pandora::Cluster * m_pClusterU
Address of cluster in U view.
void MatchTwoViews(const CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap &matchedClusters12, const CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap &matchedClusters23, const CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap &matchedClusters31, ParticleList &particleList) const
Match clusters from two views and form into particles.
virtual bool CheckMatchedClusters3D(const pandora::Cluster *const pCluster1, const pandora::Cluster *const pCluster2, const pandora::Cluster *const pCluster3) const =0
Check that three clusters have a consistent 3D position.
fhicl::Table< sbnd::crt::CRTDetSimParams > Parameters
pandora::StatusCode GetAvailableClusters(const std::string inputClusterListName, pandora::ClusterVector &clusterVector) const
Get a vector of available clusters.
Particle(const pandora::Cluster *const pClusterU, const pandora::Cluster *const pClusterV, const pandora::Cluster *const pClusterW)
Constructor.
std::string m_inputClusterListNameU
The name of the view U cluster list.
std::string m_inputClusterListNameW
The name of the view W cluster list.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
std::vector< art::Ptr< recob::Cluster > > ClusterVector
void ResolveAmbiguities(const ParticleList &inputList, ParticleList &outputList) const
Remove ambiguities between candidate particles.
std::unordered_map< const pandora::Cluster *, pandora::ClusterList > ClusterAssociationMap
virtual bool MatchClusters(const pandora::Cluster *const pCluster1, const pandora::Cluster *const pCluster2) const =0
Match a pair of clusters from two views.