LArSoft
v09_90_00
Liquid Argon Software toolkit - https://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::LArClusterHelper::GetClusterHitType(), lar_content::LArGeometryHelper::GetWirePitch(), 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 215 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 181 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 158 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 99 of file TwoDSlidingFitSplittingAndSwitchingAlgorithm.h.
Referenced by BuildSlidingFitResultMap(), and ReadSettings().
|
private |
minimum length of clusters
Definition at line 100 of file TwoDSlidingFitSplittingAndSwitchingAlgorithm.h.
Referenced by GetListOfCleanClusters(), and ReadSettings().