![]() |
LArSoft
v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
|
TwoDSlidingFitSplittingAndSwitchingAlgorithm class. More...
#include "TwoDSlidingFitSplittingAndSwitchingAlgorithm.h"
Public Member Functions | |
| TwoDSlidingFitSplittingAndSwitchingAlgorithm () | |
| Default constructor. More... | |
Protected Member Functions | |
| virtual pandora::StatusCode | Run () |
| virtual pandora::StatusCode | ReadSettings (const pandora::TiXmlHandle xmlHandle) |
| virtual pandora::StatusCode | PreparationStep (const pandora::ClusterVector &clusterVector) |
| Perform any preparatory actions, such as caching information for subsequent expensive calculations. More... | |
| virtual pandora::StatusCode | TidyUpStep () |
| Tidy up any information cached in e.g. the preparation step. More... | |
| virtual pandora::StatusCode | FindBestSplitPosition (const TwoDSlidingFitResult &slidingFit1, const TwoDSlidingFitResult &slidingFit2, pandora::CartesianVector &splitPosition, pandora::CartesianVector &direction1, pandora::CartesianVector &direction2) const =0 |
| Find the best split position and direction for a pair of clusters. More... | |
Private Member Functions | |
| void | GetListOfCleanClusters (const pandora::ClusterList *const pClusterList, pandora::ClusterVector &clusterVector) const |
| Populate cluster vector with subset of cluster list, containing clusters judged to be clean. More... | |
| void | BuildSlidingFitResultMap (const pandora::ClusterVector &clusterVector, TwoDSlidingFitResultMap &slidingFitResultMap) const |
| Build the map of sliding fit results. More... | |
| void | SplitCluster (const pandora::Cluster *const pCluster, const pandora::CartesianVector &splitPosition, const pandora::CartesianVector &splitDirection, pandora::CaloHitList &firstCaloHitList, pandora::CaloHitList &secondCaloHitList) const |
| Split cluster at a given position and direction. More... | |
| pandora::StatusCode | ReplaceClusters (const pandora::Cluster *const pCluster1, const pandora::Cluster *const pCluster2, const pandora::CartesianVector &splitPosition, const pandora::CartesianVector &firstDirection, const pandora::CartesianVector &secondDirection) const |
| Replace crossed clusters with un-crossed clusters. More... | |
Private Attributes | |
| unsigned int | m_halfWindowLayers |
| half window layers for sliding linear fot More... | |
| float | m_minClusterLength |
| minimum length of clusters More... | |
TwoDSlidingFitSplittingAndSwitchingAlgorithm class.
Definition at line 21 of file TwoDSlidingFitSplittingAndSwitchingAlgorithm.h.
| lar_content::TwoDSlidingFitSplittingAndSwitchingAlgorithm::TwoDSlidingFitSplittingAndSwitchingAlgorithm | ( | ) |
Default constructor.
Definition at line 21 of file TwoDSlidingFitSplittingAndSwitchingAlgorithm.cc.
|
private |
Build the map of sliding fit results.
| clusterVector | the input cluster vector |
| slidingFitResultMap | the output sliding fit result map |
Definition at line 132 of file TwoDSlidingFitSplittingAndSwitchingAlgorithm.cc.
References lar_content::LArGeometryHelper::GetWireZPitch(), and m_halfWindowLayers.
Referenced by Run().
|
protectedpure virtual |
Find the best split position and direction for a pair of clusters.
| slidingFit1 | the sliding linear fit to the first cluster |
| slidingFit2 | the sliding linear fit to the second cluster |
| splitPosition | the output split position |
| direction1 | the output direction of the first new cluster |
| direction2 | the output direction of the second new cluster |
Implemented in lar_content::CrossedTrackSplittingAlgorithm.
Referenced by Run().
|
private |
Populate cluster vector with subset of cluster list, containing clusters judged to be clean.
| pClusterList | address of the cluster list |
| clusterVector | to receive the populated cluster vector |
Definition at line 115 of file TwoDSlidingFitSplittingAndSwitchingAlgorithm.cc.
References lar_content::LArClusterHelper::GetLengthSquared(), m_minClusterLength, and lar_content::LArClusterHelper::SortByNHits().
Referenced by Run().
|
protectedvirtual |
Perform any preparatory actions, such as caching information for subsequent expensive calculations.
| clusterVector | the cluster vector |
Reimplemented in lar_content::CrossedTrackSplittingAlgorithm.
Definition at line 101 of file TwoDSlidingFitSplittingAndSwitchingAlgorithm.cc.
Referenced by Run().
|
protectedvirtual |
Reimplemented in lar_content::CrossedTrackSplittingAlgorithm.
Definition at line 216 of file TwoDSlidingFitSplittingAndSwitchingAlgorithm.cc.
References m_halfWindowLayers, and m_minClusterLength.
Referenced by lar_content::CrossedTrackSplittingAlgorithm::ReadSettings().
|
private |
Replace crossed clusters with un-crossed clusters.
| pCluster1 | the first cluster to be deleted |
| pCluster2 | the second cluster to be deleted |
| splitPosition | the split position |
| firstDirection | the direction of the first new cluster |
| secondDirection | the direction of the second new cluster |
Definition at line 182 of file TwoDSlidingFitSplittingAndSwitchingAlgorithm.cc.
References SplitCluster().
Referenced by Run().
|
protectedvirtual |
Definition at line 29 of file TwoDSlidingFitSplittingAndSwitchingAlgorithm.cc.
References BuildSlidingFitResultMap(), f, FindBestSplitPosition(), lar_content::TwoDSlidingFitResult::GetCluster(), GetListOfCleanClusters(), PreparationStep(), ReplaceClusters(), and TidyUpStep().
|
private |
Split cluster at a given position and direction.
| pCluster | the cluster |
| splitPosition | the position at which to split the cluster |
| splitDirection | the direction of the un-crossed cluster |
| firstCaloHitList | the hits to be added to the first new cluster |
| secondCaloHitList | the hits to be added to the second new cluster |
Definition at line 159 of file TwoDSlidingFitSplittingAndSwitchingAlgorithm.cc.
Referenced by ReplaceClusters().
|
protectedvirtual |
Tidy up any information cached in e.g. the preparation step.
Reimplemented in lar_content::CrossedTrackSplittingAlgorithm.
Definition at line 108 of file TwoDSlidingFitSplittingAndSwitchingAlgorithm.cc.
Referenced by Run().
|
private |
half window layers for sliding linear fot
Definition at line 100 of file TwoDSlidingFitSplittingAndSwitchingAlgorithm.h.
Referenced by BuildSlidingFitResultMap(), and ReadSettings().
|
private |
minimum length of clusters
Definition at line 101 of file TwoDSlidingFitSplittingAndSwitchingAlgorithm.h.
Referenced by GetListOfCleanClusters(), and ReadSettings().