LArSoft
v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
|
ClearTrackFragmentsTool class. More...
#include "ClearTrackFragmentsTool.h"
Public Types | |
typedef ThreeDTrackFragmentsAlgorithm::TensorType | TensorType |
typedef std::vector< TensorType::ElementList::const_iterator > | IteratorList |
Public Member Functions | |
ClearTrackFragmentsTool () | |
Default constructor. More... | |
bool | Run (ThreeDTrackFragmentsAlgorithm *const pAlgorithm, TensorType &overlapTensor) |
Run the algorithm tool. More... | |
Private Member Functions | |
bool | FindTrackFragments (ThreeDTrackFragmentsAlgorithm *const pAlgorithm, const TensorType &overlapTensor) const |
Find suitable matching track fragments in the overlap tensor to use for 3D particle creation, return value indicates whether particles are made. More... | |
bool | GetAndCheckElementList (const TensorType &overlapTensor, const pandora::Cluster *const pCluster, TensorType::ElementList &elementList) const |
Get the list of elements connected to a given cluster and check its suitability (no ambiguities) More... | |
bool | CheckForHitAmbiguities (const TensorType::ElementList &elementList) const |
Check the list of hits, stored in tensor elements, for ambiguities. More... | |
bool | CheckOverlapResult (const TensorType::OverlapResult &overlapResult) const |
Check whether the overlap result passes matched sampling point and number of matched hit checks. More... | |
void | SelectClearElements (const TensorType::ElementList &elementList, IteratorList &iteratorList) const |
Select a list of clear track-like elements from a set of connected tensor elements. More... | |
void | ProcessTensorElement (ThreeDTrackFragmentsAlgorithm *const pAlgorithm, const TensorType::OverlapResult &overlapResult, pandora::ClusterList &modifiedClusters, pandora::ClusterList &deletedClusters, pandora::ClusterSet &badClusters, const pandora::Cluster *&pFragmentCluster) const |
Process a tensor element, reclustering the fragments as required. More... | |
void | Recluster (ThreeDTrackFragmentsAlgorithm *const pAlgorithm, const pandora::Cluster *const pCluster, const pandora::CaloHitList &daughterHits, const pandora::CaloHitList &separateHits, pandora::ClusterList &deletedClusters, pandora::ClusterSet &badClusters, const pandora::Cluster *&pFragmentCluster) const |
Rearrange the hits in a cluster from the fragment list, using the Pandora fragmentation mechanism. More... | |
void | RebuildClusters (ThreeDTrackFragmentsAlgorithm *const pAlgorithm, const pandora::ClusterList &modifiedClusters, pandora::ClusterList &newClusters) const |
Rebuild clusters after fragmentation. More... | |
void | UpdateTensor (ThreeDTrackFragmentsAlgorithm *const pAlgorithm, const TensorType &overlapTensor, const pandora::ClusterList &clustersToRemoveFromTensor, const pandora::ClusterList &clustersToAddToTensor) const |
Update the tensor following the fragmentation operations performed by this tool. More... | |
void | GetAffectedKeyClusters (const TensorType &overlapTensor, const pandora::ClusterList &clustersToRemoveFromTensor, pandora::ClusterList &affectedKeyClusters) const |
Get a list of the tensor key clusters for which tensor elements have been impacted by fragmentation operations. More... | |
pandora::StatusCode | ReadSettings (const pandora::TiXmlHandle xmlHandle) |
Private Attributes | |
float | m_minMatchedSamplingPointFraction |
The minimum fraction of matched sampling points. More... | |
unsigned int | m_minMatchedHits |
The minimum number of matched calo hits. More... | |
ClearTrackFragmentsTool class.
Definition at line 19 of file ClearTrackFragmentsTool.h.
|
inherited |
Definition at line 164 of file ThreeDTrackFragmentsAlgorithm.h.
|
inherited |
Definition at line 163 of file ThreeDTrackFragmentsAlgorithm.h.
lar_content::ClearTrackFragmentsTool::ClearTrackFragmentsTool | ( | ) |
Default constructor.
Definition at line 20 of file ClearTrackFragmentsTool.cc.
|
private |
Check the list of hits, stored in tensor elements, for ambiguities.
elementList | the element list |
Definition at line 135 of file ClearTrackFragmentsTool.cc.
|
private |
Check whether the overlap result passes matched sampling point and number of matched hit checks.
overlapResult | the overlap result |
Definition at line 157 of file ClearTrackFragmentsTool.cc.
References lar_content::FragmentOverlapResult::GetFragmentCaloHitList(), lar_content::TrackOverlapResult::GetMatchedFraction(), m_minMatchedHits, and m_minMatchedSamplingPointFraction.
Referenced by FindTrackFragments().
|
private |
Find suitable matching track fragments in the overlap tensor to use for 3D particle creation, return value indicates whether particles are made.
pAlgorithm | address of the calling algorithm |
overlapTensor | the overlap tensor |
Definition at line 38 of file ClearTrackFragmentsTool.cc.
References CheckOverlapResult(), lar_content::ThreeDBaseAlgorithm< T >::CreateThreeDParticles(), GetAndCheckElementList(), lar_content::OverlapTensor< T >::GetSortedKeyClusters(), lar_content::ProtoParticle::m_clusterListU, lar_content::ProtoParticle::m_clusterListV, lar_content::ProtoParticle::m_clusterListW, ProcessTensorElement(), RebuildClusters(), SelectClearElements(), and UpdateTensor().
Referenced by Run().
|
private |
Get a list of the tensor key clusters for which tensor elements have been impacted by fragmentation operations.
overlapTensor | the overlap tensor |
clustersToRemoveFromTensor | the list of clusters removed from the tensor by fragmentation operations |
affectedKeyClusters | to receive the list of tensor key clusters that have been affected by fragmentation operations |
Definition at line 394 of file ClearTrackFragmentsTool.cc.
References lar_content::OverlapTensor< T >::begin(), lar_content::OverlapTensor< T >::end(), lar_content::FragmentOverlapResult::GetFragmentClusterList(), lar_content::FragmentOverlapResult::GetFragmentHitType(), and lar_content::LArClusterHelper::SortByNHits().
Referenced by UpdateTensor().
|
private |
Get the list of elements connected to a given cluster and check its suitability (no ambiguities)
overlapTensor | the overlap tensor |
pCluster | address of the key cluster |
elementList | to receive the element list |
Definition at line 108 of file ClearTrackFragmentsTool.cc.
References lar_content::OverlapTensor< T >::GetConnectedElements().
Referenced by FindTrackFragments().
|
private |
Process a tensor element, reclustering the fragments as required.
pAlgorithm | address of the calling algorithm |
overlapResult | the overlap result |
modifiedClusters | to receive the list of modified clusters |
deletedClusters | to receive the list of deleted clusters |
badClusters | the set of clusters that should not be dereferenced |
pFragmentCluster | to receive the address of the new fragment cluster |
Definition at line 239 of file ClearTrackFragmentsTool.cc.
References lar_content::ThreeDBaseAlgorithm< T >::GetClusterListNameU(), lar_content::ThreeDBaseAlgorithm< T >::GetClusterListNameV(), lar_content::ThreeDBaseAlgorithm< T >::GetClusterListNameW(), lar_content::FragmentOverlapResult::GetFragmentCaloHitList(), lar_content::FragmentOverlapResult::GetFragmentClusterList(), lar_content::FragmentOverlapResult::GetFragmentHitType(), Recluster(), and lar_content::LArClusterHelper::SortByNHits().
Referenced by FindTrackFragments().
|
private |
Definition at line 432 of file ClearTrackFragmentsTool.cc.
References m_minMatchedHits, and m_minMatchedSamplingPointFraction.
|
private |
Rebuild clusters after fragmentation.
pAlgorithm | address of the calling algorithm |
modifiedClusters | the list of clusters to rebuild |
newClusters | the list of new clusters |
Definition at line 354 of file ClearTrackFragmentsTool.cc.
References lar_content::ThreeDTrackFragmentsAlgorithm::RebuildClusters().
Referenced by FindTrackFragments().
|
private |
Rearrange the hits in a cluster from the fragment list, using the Pandora fragmentation mechanism.
pAlgorithm | address of the calling algorithm |
pCluster | address of the input cluster |
daughterHits | the full list of hits to place in the new fragment cluster |
separateHits | the full list of hits that are not to be placed in the new fragment cluster |
deletedClusters | to receive the list of deleted clusters |
badClusters | the set of clusters that should not be dereferenced |
pFragmentCluster | to receive the address of the new fragment cluster |
Definition at line 306 of file ClearTrackFragmentsTool.cc.
Referenced by ProcessTensorElement().
|
virtual |
Run the algorithm tool.
pAlgorithm | address of the calling algorithm |
overlapTensor | the overlap tensor |
Implements lar_content::FragmentTensorTool.
Definition at line 28 of file ClearTrackFragmentsTool.cc.
References FindTrackFragments().
|
private |
Select a list of clear track-like elements from a set of connected tensor elements.
elementList | the full list of connected tensor elements |
iteratorList | to receive a list of iterators to long track-like elements |
Definition at line 172 of file ClearTrackFragmentsTool.cc.
References f.
Referenced by FindTrackFragments().
|
private |
Update the tensor following the fragmentation operations performed by this tool.
pAlgorithm | address of the calling algorithm |
overlapTensor | the overlap tensor |
clustersToRemoveFromTensor | the list of clusters to remove from the tensor |
clustersToAddToTensor | the list of clusters newly made available for future particle reconstruction |
Definition at line 370 of file ClearTrackFragmentsTool.cc.
References GetAffectedKeyClusters(), lar_content::ThreeDTracksBaseAlgorithm< T >::SelectInputClusters(), lar_content::ThreeDTrackFragmentsAlgorithm::UpdateForNewCluster(), and lar_content::ThreeDTracksBaseAlgorithm< T >::UpdateUponDeletion().
Referenced by FindTrackFragments().
|
private |
The minimum number of matched calo hits.
Definition at line 138 of file ClearTrackFragmentsTool.h.
Referenced by CheckOverlapResult(), and ReadSettings().
|
private |
The minimum fraction of matched sampling points.
Definition at line 137 of file ClearTrackFragmentsTool.h.
Referenced by CheckOverlapResult(), and ReadSettings().