8 #ifndef DELTA_RAY_MERGE_TOOL_H
9 #define DELTA_RAY_MERGE_TOOL_H 1
28 pandora::StatusCode
ReadSettings(
const pandora::TiXmlHandle xmlHandle);
56 const pandora::PfoList &commonMuonPfoList1,
const pandora::PfoList &commonMuonPfoList2, pandora::PfoList &commonMuonPfoList)
const;
67 bool AreAssociated(
const TensorType::Element &element1,
const TensorType::Element &element2,
const pandora::HitType &mergeHitType)
const;
76 void GetConnectedMuons(
const pandora::Cluster *
const pDeltaRayCluster,
const pandora::PfoList &commonMuonPfoList,
77 pandora::PfoList &connectedMuonPfoList)
const;
87 bool IsConnected(
const pandora::Cluster *
const pCluster,
const pandora::Pfo *
const pCommonMuonPfo)
const;
97 bool IsBrokenCluster(
const pandora::Cluster *
const pClusterToEnlarge,
const pandora::Cluster *
const pClusterToDelete)
const;
108 bool IsHiddenByTrack(
const pandora::ParticleFlowObject *
const pMuonPfo,
const pandora::Cluster *
const pCluster1,
109 const pandora::Cluster *
const pCluster2)
const;
118 void FindVertices(
const pandora::Pfo *
const pCommonMuonPfo,
const pandora::Cluster *
const pCluster, pandora::CaloHitList &vertexList)
const;
137 #endif // #ifndef DELTA_RAY_MERGE_TOOL_H
float m_maxVertexSeparation
The maximum separation of the connection points of two delta ray clusters that are hidden by a CR tra...
float m_maxClusterSeparation
The maximum separation of two broken clusters that should be merged.
DeltaRayTensorTool class.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
void GetConnectedMuons(const pandora::Cluster *const pDeltaRayCluster, const pandora::PfoList &commonMuonPfoList, pandora::PfoList &connectedMuonPfoList) const
Return the list of muon pfos that a specified delta ray cluster is directly connected to...
bool IsHiddenByTrack(const pandora::ParticleFlowObject *const pMuonPfo, const pandora::Cluster *const pCluster1, const pandora::Cluster *const pCluster2) const
Determine whether two delta ray clusters are actually a single cluster that is hidden behind a cosmic...
bool MakeOneCommonViewMerges(const TensorType::ElementList &elementList) const
Search for two matches with a single common cluster and attempt to merge the clusters in the other tw...
std::vector< Element > ElementList
void CombineCommonMuonPfoLists(const pandora::PfoList &commonMuonPfoList1, const pandora::PfoList &commonMuonPfoList2, pandora::PfoList &commonMuonPfoList) const
Create a list of the shared common muon pfos of two elements.
void FindVertices(const pandora::Pfo *const pCommonMuonPfo, const pandora::Cluster *const pCluster, pandora::CaloHitList &vertexList) const
Find all connection points of a delta ray cluster and a cosmic ray pfo.
ThreeViewDeltaRayMatchingAlgorithm class.
bool Run(ThreeViewDeltaRayMatchingAlgorithm *const pAlgorithm, TensorType &overlapTensor)
Run the algorithm tool.
DeltaRayMergeTool()
Default constructor.
float m_maxGoodMatchReducedChiSquared
The threshold reduced chi squared value for a potential two view merge to go ahead.
bool ExamineConnectedElements(TensorType &overlapTensor) const
Identify ambiguous matches (e.g. 3:2:1) and attempt to merge clusters together.
bool IsConnected(const pandora::Cluster *const pCluster, const pandora::Pfo *const pCommonMuonPfo) const
Determine whether a given cluster is connected to a cosmic ray pfo.
bool IsBrokenCluster(const pandora::Cluster *const pClusterToEnlarge, const pandora::Cluster *const pClusterToDelete) const
Determine whether two delta ray clusters have been split.
float m_maxDRSeparationFromTrack
The maximum distance of a connected delta ray from a cosmic ray track.
bool MakeTwoCommonViewMerges(const TensorType::ElementList &elementList) const
Search for two matches with two common clusters and attempt to merge the clusters in the third view t...
bool AreAssociated(const TensorType::Element &element1, const TensorType::Element &element2, const pandora::HitType &mergeHitType) const
Determine, from a topological point of view, whether two delta ray clusters should be merged together...