ThreeViewTransverseTracksAlgorithm class. More...
#include <ThreeViewTransverseTracksAlgorithm.h>
Public Types | |
typedef NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< TransverseOverlapResult > > | BaseAlgorithm |
Public Types inherited from lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< TransverseOverlapResult > > | |
typedef ThreeViewMatchingControl< TransverseOverlapResult > | MatchingType |
Public Member Functions | |
ThreeViewTransverseTracksAlgorithm () | |
Default constructor. More... | |
Public Member Functions inherited from lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< TransverseOverlapResult > > | |
NViewTrackMatchingAlgorithm () | |
Default constructor. More... | |
virtual | ~NViewTrackMatchingAlgorithm () |
Destructor. More... | |
const TwoDSlidingFitResult & | GetCachedSlidingFitResult (const pandora::Cluster *const pCluster) const |
Get a sliding fit result from the algorithm cache. More... | |
unsigned int | GetSlidingFitWindow () const |
Get the layer window for the sliding linear fits. More... | |
virtual bool | MakeClusterSplits (const SplitPositionMap &splitPositionMap) |
Make cluster splits. More... | |
virtual bool | MakeClusterSplit (const pandora::CartesianVector &splitPosition, const pandora::Cluster *&pCurrentCluster, const pandora::Cluster *&pLowXCluster, const pandora::Cluster *&pHighXCluster) const |
Make a cluster split. More... | |
virtual void | UpdateForNewCluster (const pandora::Cluster *const pNewCluster) |
Update to reflect addition of a new cluster to the problem space. More... | |
virtual void | UpdateUponDeletion (const pandora::Cluster *const pDeletedCluster) |
Update to reflect cluster deletion. More... | |
virtual void | SelectInputClusters (const pandora::ClusterList *const pInputClusterList, pandora::ClusterList &selectedClusterList) const |
Select a subset of input clusters for processing in this algorithm. More... | |
virtual void | PrepareInputClusters (pandora::ClusterList &preparedClusterList) |
Perform any preparatory steps required on the input clusters, e.g. caching expensive fit results. More... | |
virtual void | SetPfoParticleId (PandoraContentApi::ParticleFlowObject::Parameters &pfoParameters) const |
Set pfo particle id. More... | |
Public Member Functions inherited from lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< TransverseOverlapResult > > | |
NViewMatchingAlgorithm () | |
Default constructor. More... | |
virtual | ~NViewMatchingAlgorithm () |
Destructor. More... | |
const std::string & | GetClusterListName (const pandora::HitType hitType) const |
Get the cluster list name corresponding to a specified hit type. More... | |
const pandora::ClusterList & | GetInputClusterList (const pandora::HitType hitType) const |
Get the input cluster list corresponding to a specified hit type. More... | |
const pandora::ClusterList & | GetSelectedClusterList (const pandora::HitType hitType) const |
Get the selected cluster list corresponding to a specified hit type. More... | |
Public Member Functions inherited from lar_content::MatchingBaseAlgorithm | |
MatchingBaseAlgorithm () | |
Default constructor. More... | |
virtual | ~MatchingBaseAlgorithm () |
Destructor. More... | |
virtual bool | MakeClusterMerges (const ClusterMergeMap &clusterMergeMap) |
Merge clusters together. More... | |
virtual bool | CreateThreeDParticles (const ProtoParticleVector &protoParticleVector) |
Create particles using findings from recent algorithm processing. More... | |
virtual void | SetPfoParameters (const ProtoParticle &protoParticle, PandoraContentApi::ParticleFlowObject::Parameters &pfoParameters) const |
Set Pfo properties. More... | |
Private Types | |
typedef std::map< unsigned int, TransverseOverlapResult > | FitSegmentToOverlapResultMap |
typedef std::map< unsigned int, FitSegmentToOverlapResultMap > | FitSegmentMatrix |
typedef std::map< unsigned int, FitSegmentMatrix > | FitSegmentTensor |
typedef std::vector< TransverseTensorTool * > | TensorToolVector |
Private Member Functions | |
void | CalculateOverlapResult (const pandora::Cluster *const pClusterU, const pandora::Cluster *const pClusterV, const pandora::Cluster *const pClusterW) |
Calculate cluster overlap result and store in container. More... | |
pandora::StatusCode | CalculateOverlapResult (const pandora::Cluster *const pClusterU, const pandora::Cluster *const pClusterV, const pandora::Cluster *const pClusterW, TransverseOverlapResult &overlapResult) |
Calculate the overlap result for given group of clusters. More... | |
void | GetFitSegmentTensor (const TwoDSlidingFitResult &slidingFitResultU, const TwoDSlidingFitResult &slidingFitResultV, const TwoDSlidingFitResult &slidingFitResultW, FitSegmentTensor &fitSegmentTensor) const |
Get the number of matched points for three fit segments and accompanying sliding fit results. More... | |
pandora::StatusCode | GetSegmentOverlap (const FitSegment &fitSegmentU, const FitSegment &fitSegmentV, const FitSegment &fitSegmentW, const TwoDSlidingFitResult &slidingFitResultU, const TwoDSlidingFitResult &slidingFitResultV, const TwoDSlidingFitResult &slidingFitResultW, TransverseOverlapResult &transverseOverlapResult) const |
Get the overlap result for three fit segments and the accompanying sliding fit results. More... | |
void | GetBestOverlapResult (const FitSegmentTensor &fitSegmentTensor, TransverseOverlapResult &bestTransverseOverlapResult) const |
Get the best overlap result, by examining the fit segment tensor. More... | |
void | GetPreviousOverlapResults (const unsigned int indexU, const unsigned int indexV, const unsigned int indexW, FitSegmentTensor &fitSegmentSumTensor, TransverseOverlapResultVector &transverseOverlapResultVector) const |
Get track overlap results for possible connected segments. More... | |
void | ExamineOverlapContainer () |
Examine contents of overlap container, collect together best-matching 2D particles and modify clusters as required. More... | |
pandora::StatusCode | ReadSettings (const pandora::TiXmlHandle xmlHandle) |
Private Attributes | |
TensorToolVector | m_algorithmToolVector |
The algorithm tool vector. More... | |
unsigned int | m_nMaxTensorToolRepeats |
The maximum number of repeat loops over tensor tools. More... | |
unsigned int | m_maxFitSegmentIndex |
The maximum number of fit segments used when identifying best overlap result. More... | |
float | m_pseudoChi2Cut |
The pseudo chi2 cut to identify matched sampling points. More... | |
float | m_minSegmentMatchedFraction |
The minimum segment matched sampling fraction to allow segment grouping. More... | |
unsigned int | m_minSegmentMatchedPoints |
The minimum number of matched segment sampling points to allow segment grouping. More... | |
float | m_minOverallMatchedFraction |
The minimum matched sampling fraction to allow particle creation. More... | |
unsigned int | m_minOverallMatchedPoints |
The minimum number of matched segment sampling points to allow particle creation. More... | |
float | m_minSamplingPointsPerLayer |
The minimum number of sampling points per layer to allow particle creation. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< TransverseOverlapResult > > | |
static bool | SortSplitPositions (const pandora::CartesianVector &lhs, const pandora::CartesianVector &rhs) |
Sort split position cartesian vectors by increasing x coordinate. More... | |
Protected Member Functions inherited from lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< TransverseOverlapResult > > | |
void | AddToSlidingFitCache (const pandora::Cluster *const pCluster) |
Add a new sliding fit result, for the specified cluster, to the algorithm cache. More... | |
void | RemoveFromSlidingFitCache (const pandora::Cluster *const pCluster) |
Remova an existing sliding fit result, for the specified cluster, from the algorithm cache. More... | |
virtual void | TidyUp () |
Tidy member variables in derived class. More... | |
Protected Member Functions inherited from lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< TransverseOverlapResult > > | |
MatchingType & | GetMatchingControl () |
Get the matching control. More... | |
virtual void | SelectAllInputClusters () |
Select a subset of input clusters for processing in this algorithm. More... | |
virtual void | PrepareAllInputClusters () |
Perform any preparatory steps required, e.g. caching expensive fit results for clusters. More... | |
virtual void | PerformMainLoop () |
Main loop over cluster combinations in order to populate the overlap container. Responsible for calling CalculateOverlapResult. More... | |
Protected Attributes inherited from lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< TransverseOverlapResult > > | |
MatchingType | m_matchingControl |
The matching control. More... | |
ThreeViewTransverseTracksAlgorithm class.
Definition at line 29 of file ThreeViewTransverseTracksAlgorithm.h.
typedef NViewTrackMatchingAlgorithm<ThreeViewMatchingControl<TransverseOverlapResult> > lar_content::ThreeViewTransverseTracksAlgorithm::BaseAlgorithm |
Definition at line 32 of file ThreeViewTransverseTracksAlgorithm.h.
|
private |
Definition at line 41 of file ThreeViewTransverseTracksAlgorithm.h.
|
private |
Definition at line 42 of file ThreeViewTransverseTracksAlgorithm.h.
|
private |
Definition at line 40 of file ThreeViewTransverseTracksAlgorithm.h.
|
private |
Definition at line 109 of file ThreeViewTransverseTracksAlgorithm.h.
lar_content::ThreeViewTransverseTracksAlgorithm::ThreeViewTransverseTracksAlgorithm | ( | ) |
Default constructor.
Definition at line 21 of file ThreeViewTransverseTracksAlgorithm.cc.
|
privatevirtual |
Calculate cluster overlap result and store in container.
pCluster1 | address of cluster1 |
pCluster2 | address of cluster2 |
pCluster3 | address of cluster3 |
Implements lar_content::MatchingBaseAlgorithm.
|
private |
Calculate the overlap result for given group of clusters.
pClusterU | the cluster from the U view |
pClusterV | the cluster from the V view |
pClusterW | the cluster from the W view |
overlapResult | to receive the overlap result |
|
privatevirtual |
Examine contents of overlap container, collect together best-matching 2D particles and modify clusters as required.
Implements lar_content::MatchingBaseAlgorithm.
Definition at line 297 of file ThreeViewTransverseTracksAlgorithm.cc.
|
private |
Get the best overlap result, by examining the fit segment tensor.
fitSegmentTensor | the fit segment tensor |
bestTransverseOverlapResult | to receive the best transverse overlap result |
Definition at line 193 of file ThreeViewTransverseTracksAlgorithm.cc.
|
private |
Get the number of matched points for three fit segments and accompanying sliding fit results.
slidingFitResultU | sliding fit result for u cluster |
slidingFitResultV | sliding fit result for v cluster |
slidingFitResultW | sliding fit result for w cluster |
fitSegmentTensor | the fit segment tensor |
Definition at line 87 of file ThreeViewTransverseTracksAlgorithm.cc.
|
private |
Get track overlap results for possible connected segments.
indexU | the index u |
indexV | the index v |
indexW | the index w |
transverseOverlapResultVector | the transverse overlap result vector |
Definition at line 269 of file ThreeViewTransverseTracksAlgorithm.cc.
|
private |
Get the overlap result for three fit segments and the accompanying sliding fit results.
fitSegmentU | the fit segment u |
fitSegmentV | the fit segment v |
fitSegmentW | the fit segment w |
slidingFitResultU | sliding fit result for u cluster |
slidingFitResultV | sliding fit result for v cluster |
slidingFitResultW | sliding fit result for w cluster |
transverseOverlapResult | to receive the transverse overlap result |
Definition at line 123 of file ThreeViewTransverseTracksAlgorithm.cc.
|
privatevirtual |
Reimplemented from lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< TransverseOverlapResult > >.
Definition at line 320 of file ThreeViewTransverseTracksAlgorithm.cc.
|
private |
The algorithm tool vector.
Definition at line 110 of file ThreeViewTransverseTracksAlgorithm.h.
|
private |
The maximum number of fit segments used when identifying best overlap result.
Definition at line 113 of file ThreeViewTransverseTracksAlgorithm.h.
|
private |
The minimum matched sampling fraction to allow particle creation.
Definition at line 117 of file ThreeViewTransverseTracksAlgorithm.h.
|
private |
The minimum number of matched segment sampling points to allow particle creation.
Definition at line 118 of file ThreeViewTransverseTracksAlgorithm.h.
|
private |
The minimum number of sampling points per layer to allow particle creation.
Definition at line 119 of file ThreeViewTransverseTracksAlgorithm.h.
|
private |
The minimum segment matched sampling fraction to allow segment grouping.
Definition at line 115 of file ThreeViewTransverseTracksAlgorithm.h.
|
private |
The minimum number of matched segment sampling points to allow segment grouping.
Definition at line 116 of file ThreeViewTransverseTracksAlgorithm.h.
|
private |
The maximum number of repeat loops over tensor tools.
Definition at line 112 of file ThreeViewTransverseTracksAlgorithm.h.
|
private |
The pseudo chi2 cut to identify matched sampling points.
Definition at line 114 of file ThreeViewTransverseTracksAlgorithm.h.