LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
DeltaRayMergeTool class. More...
#include "DeltaRayMergeTool.h"
Public Types | |
typedef ThreeViewDeltaRayMatchingAlgorithm::MatchingType::TensorType | TensorType |
typedef std::vector< TensorType::ElementList::const_iterator > | IteratorList |
Public Member Functions | |
DeltaRayMergeTool () | |
Default constructor. More... | |
Public Attributes | |
ThreeViewDeltaRayMatchingAlgorithm * | m_pParentAlgorithm |
Address of the parent matching algorithm. More... | |
Private Member Functions | |
bool | Run (ThreeViewDeltaRayMatchingAlgorithm *const pAlgorithm, TensorType &overlapTensor) |
Run the algorithm tool. More... | |
pandora::StatusCode | ReadSettings (const pandora::TiXmlHandle xmlHandle) |
bool | ExamineConnectedElements (TensorType &overlapTensor) const |
Identify ambiguous matches (e.g. 3:2:1) and attempt to merge clusters together. More... | |
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 together. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
bool | IsBrokenCluster (const pandora::Cluster *const pClusterToEnlarge, const pandora::Cluster *const pClusterToDelete) const |
Determine whether two delta ray clusters have been split. More... | |
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 ray track. More... | |
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. More... | |
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 two views together. More... | |
Private Attributes | |
float | m_maxDRSeparationFromTrack |
The maximum distance of a connected delta ray from a cosmic ray track. More... | |
float | m_maxClusterSeparation |
The maximum separation of two broken clusters that should be merged. More... | |
float | m_maxVertexSeparation |
The maximum separation of the connection points of two delta ray clusters that are hidden by a CR track and should be merged. More... | |
float | m_maxGoodMatchReducedChiSquared |
The threshold reduced chi squared value for a potential two view merge to go ahead. More... | |
DeltaRayMergeTool class.
Definition at line 18 of file DeltaRayMergeTool.h.
|
inherited |
Definition at line 102 of file ThreeViewDeltaRayMatchingAlgorithm.h.
|
inherited |
Definition at line 101 of file ThreeViewDeltaRayMatchingAlgorithm.h.
lar_content::DeltaRayMergeTool::DeltaRayMergeTool | ( | ) |
Default constructor.
Definition at line 22 of file DeltaRayMergeTool.cc.
|
private |
Determine, from a topological point of view, whether two delta ray clusters should be merged together.
element1 | the first tensor element |
element2 | the second tensor element |
mergeHitType | the hit type of the view in which to assess the merge |
Definition at line 145 of file DeltaRayMergeTool.cc.
References CombineCommonMuonPfoLists(), GetConnectedMuons(), IsBrokenCluster(), and IsHiddenByTrack().
Referenced by MakeOneCommonViewMerges(), and MakeTwoCommonViewMerges().
|
private |
Create a list of the shared common muon pfos of two elements.
commonMuonPfoList1 | the common muon pfo list of the first element |
commonMuonPfoList2 | the common muon pfo list of the second element |
commonMuonPfoList | the output common muon pfo list |
Definition at line 180 of file DeltaRayMergeTool.cc.
Referenced by AreAssociated().
|
private |
Identify ambiguous matches (e.g. 3:2:1) and attempt to merge clusters together.
overlapTensor | the overlap tensor |
Definition at line 44 of file DeltaRayMergeTool.cc.
References lar_content::OverlapTensor< T >::GetConnectedElements(), lar_content::OverlapTensor< T >::GetSortedKeyClusters(), MakeOneCommonViewMerges(), and MakeTwoCommonViewMerges().
Referenced by Run().
|
private |
Find all connection points of a delta ray cluster and a cosmic ray pfo.
pCommonMuonPfo | the address of the cosmic ray pfo |
pCluster | the address of the delta ray cluster |
vertexList | the output list of connection points |
Definition at line 253 of file DeltaRayMergeTool.cc.
References lar_content::LArClusterHelper::GetClosestDistance(), lar_content::LArClusterHelper::GetClusterHitType(), lar_content::LArPfoHelper::GetClusters(), and m_maxDRSeparationFromTrack.
Referenced by IsHiddenByTrack().
|
private |
Return the list of muon pfos that a specified delta ray cluster is directly connected to.
pDeltaRayCluster | the address of the input delta ray cluster |
commonMuonPfoList | the common muon pfo list of the element to which the DR cluster belongs |
connectedMuonPfoList | the output list of connected muon pfos |
Definition at line 194 of file DeltaRayMergeTool.cc.
References IsConnected().
Referenced by AreAssociated().
|
private |
Determine whether two delta ray clusters have been split.
pClusterToEnlarge | the address of one delta ray cluster |
pClusterToDelete | the address of the other delta ray cluster |
Definition at line 222 of file DeltaRayMergeTool.cc.
References lar_content::LArClusterHelper::GetClosestDistance(), and m_maxClusterSeparation.
Referenced by AreAssociated().
|
private |
Determine whether a given cluster is connected to a cosmic ray pfo.
pCluster | the address of the input cluster |
pCommonMuonPfo | the address of the cosmic ray pfo |
Definition at line 205 of file DeltaRayMergeTool.cc.
References lar_content::LArClusterHelper::GetClosestDistance(), lar_content::LArClusterHelper::GetClusterHitType(), lar_content::LArPfoHelper::GetClusters(), and m_maxDRSeparationFromTrack.
Referenced by GetConnectedMuons().
|
private |
Determine whether two delta ray clusters are actually a single cluster that is hidden behind a cosmic ray track.
pMuonPfo | the address of the cosmic ray pfo |
pCluster1 | the address of one delta ray cluster |
pCluster2 | the address of the other delta ray cluster |
Definition at line 231 of file DeltaRayMergeTool.cc.
References FindVertices(), lar_content::LArClusterHelper::GetClosestDistance(), and m_maxVertexSeparation.
Referenced by AreAssociated().
|
private |
Search for two matches with a single common cluster and attempt to merge the clusters in the other two views together.
elementList | the tensor element list |
Definition at line 275 of file DeltaRayMergeTool.cc.
References AreAssociated(), lar_content::NViewMatchingAlgorithm< T >::GetClusterListName(), m_maxGoodMatchReducedChiSquared, lar_content::DeltaRayTensorTool::m_pParentAlgorithm, lar_content::NViewDeltaRayMatchingAlgorithm< T >::PerformThreeViewMatching(), lar_content::NViewDeltaRayMatchingAlgorithm< T >::UpdateForNewClusters(), and lar_content::NViewDeltaRayMatchingAlgorithm< T >::UpdateUponDeletion().
Referenced by ExamineConnectedElements().
|
private |
Search for two matches with two common clusters and attempt to merge the clusters in the third view together.
elementList | the tensor element list |
Definition at line 93 of file DeltaRayMergeTool.cc.
References AreAssociated(), lar_content::NViewMatchingAlgorithm< T >::GetClusterListName(), lar_content::DeltaRayTensorTool::m_pParentAlgorithm, lar_content::NViewDeltaRayMatchingAlgorithm< T >::UpdateForNewClusters(), and lar_content::NViewDeltaRayMatchingAlgorithm< T >::UpdateUponDeletion().
Referenced by ExamineConnectedElements().
|
private |
Definition at line 355 of file DeltaRayMergeTool.cc.
References m_maxClusterSeparation, m_maxDRSeparationFromTrack, m_maxGoodMatchReducedChiSquared, and m_maxVertexSeparation.
|
privatevirtual |
Run the algorithm tool.
pAlgorithm | address of the calling algorithm |
overlapTensor | the overlap tensor |
Implements lar_content::DeltaRayTensorTool.
Definition at line 32 of file DeltaRayMergeTool.cc.
References ExamineConnectedElements(), and lar_content::DeltaRayTensorTool::m_pParentAlgorithm.
|
private |
The maximum separation of two broken clusters that should be merged.
Definition at line 130 of file DeltaRayMergeTool.h.
Referenced by IsBrokenCluster(), and ReadSettings().
|
private |
The maximum distance of a connected delta ray from a cosmic ray track.
Definition at line 129 of file DeltaRayMergeTool.h.
Referenced by FindVertices(), IsConnected(), and ReadSettings().
|
private |
The threshold reduced chi squared value for a potential two view merge to go ahead.
Definition at line 132 of file DeltaRayMergeTool.h.
Referenced by MakeOneCommonViewMerges(), and ReadSettings().
|
private |
The maximum separation of the connection points of two delta ray clusters that are hidden by a CR track and should be merged.
Definition at line 131 of file DeltaRayMergeTool.h.
Referenced by IsHiddenByTrack(), and ReadSettings().
|
inherited |
Address of the parent matching algorithm.
Definition at line 114 of file ThreeViewDeltaRayMatchingAlgorithm.h.
Referenced by lar_content::CosmicRayRemovalTool::CreateSeed(), lar_content::AmbiguousDeltaRayTool::ExamineConnectedElements(), lar_content::UnambiguousDeltaRayTool::ExamineUnambiguousElements(), lar_content::CosmicRayRemovalTool::GrowSeed(), lar_content::DeltaRayRemovalTool::IsContaminated(), lar_content::CosmicRayRemovalTool::IsContaminated(), lar_content::RemovalBaseTool::IsMuonEndpoint(), MakeOneCommonViewMerges(), MakeTwoCommonViewMerges(), lar_content::RemovalBaseTool::PassElementChecks(), lar_content::RemovalBaseTool::ProjectDeltaRayPositions(), lar_content::CosmicRayRemovalTool::ReclusterRemnant(), lar_content::DeltaRayRemovalTool::RemoveDeltaRayHits(), lar_content::AmbiguousDeltaRayTool::Run(), lar_content::UnambiguousDeltaRayTool::Run(), Run(), lar_content::DeltaRayRemovalTool::Run(), lar_content::CosmicRayRemovalTool::Run(), lar_content::CosmicRayRemovalTool::SplitDeltaRayCluster(), and lar_content::DeltaRayRemovalTool::SplitMuonCluster().