9 #include "Pandora/AlgorithmHeaders.h"
21 UnambiguousDeltaRayTool::UnambiguousDeltaRayTool() : m_maxSeparation(2.f), m_minNConnectedClusters(1)
31 if (PandoraContentApi::GetSettings(*m_pParentAlgorithm)->ShouldDisplayAlgorithmInfo())
32 std::cout <<
"----> Running Algorithm Tool: " << this->GetInstanceName() <<
", " << this->GetType() << std::endl;
46 for (TensorType::Element &
element : elementList)
55 protoParticleVector.push_back(protoParticle);
65 PfoList commonMuonPfoList(element.GetOverlapResult().GetCommonMuonPfoList());
67 for (
const ParticleFlowObject *
const pMuonPfo : commonMuonPfoList)
69 unsigned int connectedClusterCount(0);
71 for (
const HitType hitType : {TPC_VIEW_U, TPC_VIEW_V, TPC_VIEW_W})
73 ClusterList muonClusterList;
79 ++connectedClusterCount;
93 PANDORA_RETURN_RESULT_IF_AND_IF(STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle,
"MinSeparation",
m_maxSeparation));
95 PANDORA_RETURN_RESULT_IF_AND_IF(
96 STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle,
"MinNConnectedClusters",
m_minNConnectedClusters));
98 return STATUS_CODE_SUCCESS;
std::vector< ProtoParticle > ProtoParticleVector
Header file for the pfo helper class.
unsigned int m_minNConnectedClusters
The threshold number of connected delta ray clusters required for particle creation.
bool ExamineUnambiguousElements(TensorType::ElementList &elementList)
Create delta ray pfos out of unambiguous (1:1:1) matches that are connected to a parent cosmic ray...
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.
bool IsConnected(const TensorType::Element &element) const
Determine whether the clusters of an element are connected to a cosmic ray pfo.
bool Run(ThreeViewDeltaRayMatchingAlgorithm *const pAlgorithm, TensorType &overlapTensor)
Run the algorithm tool.
ThreeViewDeltaRayMatchingAlgorithm * m_pParentAlgorithm
Address of the parent matching algorithm.
std::vector< Element > ElementList
Header file for the cluster helper class.
void GetUnambiguousElements(const bool ignoreUnavailable, ElementList &elementList) const
Get unambiguous elements.
pandora::ClusterList m_clusterList
List of 2D clusters in a 3D proto particle.
ThreeViewDeltaRayMatchingAlgorithm class.
required by fuzzyCluster table::sbnd_g4_services gaushitTruthMatch pandora
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
bool CreatePfos(ProtoParticleVector &protoParticleVector)
Create delta ray pfos maxmising completeness by searching for and merging in any stray clusters...
float m_maxSeparation
The maximum separation between a connected delta ray cluster and a cosmic ray cluster.
BEGIN_PROLOG could also be cout
static float GetClosestDistance(const pandora::ClusterList &clusterList1, const pandora::ClusterList &clusterList2)
Get closest distance between clusters in a pair of cluster lists.