![]() |
LArSoft
v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
|
ThreeDLongitudinalTracksAlgorithm class. More...
#include "ThreeDLongitudinalTracksAlgorithm.h"
Public Types | |
| typedef OverlapTensor< LongitudinalOverlapResult > | TensorType |
Public Member Functions | |
| ThreeDLongitudinalTracksAlgorithm () | |
| Default constructor. 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 | SetPfoParameters (const ProtoParticle &protoParticle, PandoraContentApi::ParticleFlowObject::Parameters &pfoParameters) const |
| Calculate Pfo properties from proto particle. More... | |
| virtual bool | CreateThreeDParticles (const ProtoParticleVector &protoParticleVector) |
| Create particles using findings from recent algorithm processing. More... | |
| virtual bool | MakeClusterMerges (const ClusterMergeMap &clusterMergeMap) |
| Merge clusters together. More... | |
| virtual void | RemoveUnavailableTensorElements () |
| Update tensor to remove all elements that have been added to pfos and so are unavailable. More... | |
| const pandora::ClusterList & | GetInputClusterListU () const |
| Get the input u cluster list. More... | |
| const pandora::ClusterList & | GetInputClusterListV () const |
| Get the input v cluster list. More... | |
| const pandora::ClusterList & | GetInputClusterListW () const |
| Get the input w cluster list. More... | |
| const pandora::ClusterList & | GetSelectedClusterListU () const |
| Get the selected u cluster list. More... | |
| const pandora::ClusterList & | GetSelectedClusterListV () const |
| Get the selected v cluster list. More... | |
| const pandora::ClusterList & | GetSelectedClusterListW () const |
| Get the selected w cluster list. More... | |
| const std::string & | GetClusterListNameU () const |
| Get the name of the u cluster list. More... | |
| const std::string & | GetClusterListNameV () const |
| Get the name of the v cluster list. More... | |
| const std::string & | GetClusterListNameW () const |
| Get the name of the w cluster list. More... | |
Static Public Member Functions | |
| static bool | SortSplitPositions (const pandora::CartesianVector &lhs, const pandora::CartesianVector &rhs) |
| Sort split position cartesian vectors by increasing x coordinate. More... | |
Protected Member Functions | |
| virtual void | PreparationStep () |
| Perform any preparatory steps required, e.g. caching expensive fit results for clusters. More... | |
| virtual void | PreparationStep (pandora::ClusterList &clusterList) |
| Preparation step for a specific cluster list. More... | |
| virtual void | TidyUp () |
| Tidy member variables in derived class. More... | |
| 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 | SelectAllInputClusters () |
| Select a subset of input clusters for processing in this algorithm. More... | |
| virtual void | PerformMainLoop () |
| Main loop over cluster combinations in order to populate the tensor. Responsible for calling CalculateOverlapResult. More... | |
Protected Attributes | |
| unsigned int | m_slidingFitWindow |
| The layer window for the sliding linear fits. More... | |
| TwoDSlidingFitResultMap | m_slidingFitResultMap |
| The sliding fit result map. More... | |
| unsigned int | m_minClusterCaloHits |
| The min number of hits in base cluster selection method. More... | |
| float | m_minClusterLengthSquared |
| The min length (squared) in base cluster selection method. More... | |
| const pandora::ClusterList * | m_pInputClusterListU |
| Address of the input cluster list U. More... | |
| const pandora::ClusterList * | m_pInputClusterListV |
| Address of the input cluster list V. More... | |
| const pandora::ClusterList * | m_pInputClusterListW |
| Address of the input cluster list W. More... | |
| pandora::ClusterList | m_clusterListU |
| The selected modified cluster list U. More... | |
| pandora::ClusterList | m_clusterListV |
| The selected modified cluster list V. More... | |
| pandora::ClusterList | m_clusterListW |
| The selected modified cluster list W. More... | |
| TensorType | m_overlapTensor |
| The overlap tensor. More... | |
Private Types | |
| typedef std::vector< LongitudinalTensorTool * > | 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 tensor. More... | |
| void | CalculateOverlapResult (const pandora::Cluster *const pClusterU, const pandora::Cluster *const pClusterV, const pandora::Cluster *const pClusterW, LongitudinalOverlapResult &overlapResult) |
| Calculate the overlap result for given group of clusters. More... | |
| void | CalculateOverlapResult (const TwoDSlidingFitResult &slidingFitResultU, const TwoDSlidingFitResult &slidingFitResultV, const TwoDSlidingFitResult &slidingFitResultW, const pandora::CartesianVector &vtxMerged3D, const pandora::CartesianVector &endMerged3D, TrackOverlapResult &overlapResult) const |
| Calculate the overlap result for given 3D vertex and end positions. More... | |
| void | ExamineTensor () |
| Examine contents of tensor, 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... | |
| float | m_vertexChi2Cut |
| The maximum allowed chi2 for associating end points from three views. More... | |
| float | m_reducedChi2Cut |
| The maximum allowed chi2 for associating hit positions from three views. More... | |
| float | m_samplingPitch |
| Pitch used to generate sampling points along tracks. More... | |
ThreeDLongitudinalTracksAlgorithm class.
Definition at line 28 of file ThreeDLongitudinalTracksAlgorithm.h.
|
private |
Definition at line 68 of file ThreeDLongitudinalTracksAlgorithm.h.
|
inherited |
Definition at line 45 of file ThreeDBaseAlgorithm.h.
| lar_content::ThreeDLongitudinalTracksAlgorithm::ThreeDLongitudinalTracksAlgorithm | ( | ) |
Default constructor.
Definition at line 21 of file ThreeDLongitudinalTracksAlgorithm.cc.
References CalculateOverlapResult(), f, lar_content::ThreeDTracksBaseAlgorithm< LongitudinalOverlapResult >::GetCachedSlidingFitResult(), lar_content::TwoDSlidingFitResult::GetGlobalFitProjection(), lar_content::TwoDSlidingFitResult::GetGlobalMaxLayerPosition(), lar_content::TwoDSlidingFitResult::GetGlobalMinLayerPosition(), lar_content::TrackOverlapResult::GetNMatchedSamplingPoints(), lar_content::TrackOverlapResult::IsInitialized(), lar_content::ThreeDBaseAlgorithm< LongitudinalOverlapResult >::m_overlapTensor, m_reducedChi2Cut, m_samplingPitch, m_vertexChi2Cut, max, lar_content::LArGeometryHelper::MergeThreePositions(), lar_content::LArGeometryHelper::MergeTwoPositions3D(), min, n, lar_content::LArGeometryHelper::ProjectPosition(), and lar_content::OverlapTensor< T >::SetOverlapResult().
|
protectedinherited |
Add a new sliding fit result, for the specified cluster, to the algorithm cache.
| pCluster | address of the relevant cluster |
|
privatevirtual |
Calculate cluster overlap result and store in tensor.
| pClusterU | address of U view cluster |
| pClusterV | address of V view cluster |
| pClusterW | address of W view cluster |
Implements lar_content::ThreeDBaseAlgorithm< LongitudinalOverlapResult >.
Referenced by ThreeDLongitudinalTracksAlgorithm().
|
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 |
|
private |
Calculate the overlap result for given 3D vertex and end positions.
| slidingFitResultU | the sliding fit result u |
| slidingFitResultV | the sliding fit result v |
| slidingFitResultW | the sliding fit result w |
| vtxMerged3D | the 3D vertex position |
| endMerged3D | the 3D end position |
| overlapResult | to receive the overlap result |
|
virtualinherited |
Create particles using findings from recent algorithm processing.
| protoParticleVector | the proto particle vector |
| whether | particles were created |
|
privatevirtual |
Examine contents of tensor, collect together best-matching 2D particles and modify clusters as required.
Implements lar_content::ThreeDBaseAlgorithm< LongitudinalOverlapResult >.
Definition at line 200 of file ThreeDLongitudinalTracksAlgorithm.cc.
References m_algorithmToolVector, m_nMaxTensorToolRepeats, and lar_content::ThreeDBaseAlgorithm< LongitudinalOverlapResult >::m_overlapTensor.
|
inherited |
Get a sliding fit result from the algorithm cache.
| pCluster | address of the relevant cluster |
Referenced by ThreeDLongitudinalTracksAlgorithm().
|
inherited |
Get the name of the u cluster list.
|
inherited |
Get the name of the v cluster list.
|
inherited |
Get the name of the w cluster list.
|
inherited |
Get the input u cluster list.
|
inherited |
Get the input v cluster list.
|
inherited |
Get the input w cluster list.
|
inherited |
Get the selected u cluster list.
|
inherited |
Get the selected v cluster list.
|
inherited |
Get the selected w cluster list.
|
inherited |
Get the layer window for the sliding linear fits.
|
virtualinherited |
Merge clusters together.
| clusterMergeMap | the cluster merge map |
|
virtualinherited |
Make a cluster split.
| splitPosition | the split position |
| pCurrentCluster | the cluster to split |
| pLowXCluster | to receive the low x cluster |
| pHighXCluster | to receive the high x cluster |
|
virtualinherited |
Make cluster splits.
| splitPositionMap | the split position map |
|
protectedvirtualinherited |
Main loop over cluster combinations in order to populate the tensor. Responsible for calling CalculateOverlapResult.
|
protectedvirtualinherited |
Perform any preparatory steps required, e.g. caching expensive fit results for clusters.
Reimplemented from lar_content::ThreeDBaseAlgorithm< LongitudinalOverlapResult >.
|
protectedvirtualinherited |
Preparation step for a specific cluster list.
| clusterList | the cluster list |
|
privatevirtual |
Reimplemented from lar_content::ThreeDTracksBaseAlgorithm< LongitudinalOverlapResult >.
Definition at line 222 of file ThreeDLongitudinalTracksAlgorithm.cc.
References m_algorithmToolVector, m_nMaxTensorToolRepeats, m_reducedChi2Cut, m_samplingPitch, m_vertexChi2Cut, and lar_content::ThreeDTracksBaseAlgorithm< T >::ReadSettings().
|
protectedinherited |
Remova an existing sliding fit result, for the specified cluster, from the algorithm cache.
| pCluster | address of the relevant cluster |
|
virtualinherited |
Update tensor to remove all elements that have been added to pfos and so are unavailable.
|
protectedvirtualinherited |
Select a subset of input clusters for processing in this algorithm.
|
virtualinherited |
Select a subset of input clusters for processing in this algorithm.
| pInputClusterList | address of an input cluster list |
| selectedClusterList | to receive the selected cluster list |
Implements lar_content::ThreeDBaseAlgorithm< LongitudinalOverlapResult >.
|
virtualinherited |
Calculate Pfo properties from proto particle.
| protoParticle | the input proto particle |
| pfoParameters | the output pfo parameters |
Implements lar_content::ThreeDBaseAlgorithm< LongitudinalOverlapResult >.
|
staticinherited |
Sort split position cartesian vectors by increasing x coordinate.
| lhs | the first cartesian vector |
| rhs | the second cartesian vector |
|
protectedvirtualinherited |
Tidy member variables in derived class.
Reimplemented from lar_content::ThreeDBaseAlgorithm< LongitudinalOverlapResult >.
|
virtualinherited |
Update to reflect addition of a new cluster to the problem space.
| pNewCluster | address of the new cluster |
Reimplemented from lar_content::ThreeDBaseAlgorithm< LongitudinalOverlapResult >.
|
virtualinherited |
Update to reflect cluster deletion.
| pDeletedCluster | address of the deleted cluster |
Reimplemented from lar_content::ThreeDBaseAlgorithm< LongitudinalOverlapResult >.
|
private |
The algorithm tool vector.
Definition at line 69 of file ThreeDLongitudinalTracksAlgorithm.h.
Referenced by ExamineTensor(), and ReadSettings().
|
protectedinherited |
The selected modified cluster list U.
Definition at line 196 of file ThreeDBaseAlgorithm.h.
|
protectedinherited |
The selected modified cluster list V.
Definition at line 197 of file ThreeDBaseAlgorithm.h.
|
protectedinherited |
The selected modified cluster list W.
Definition at line 198 of file ThreeDBaseAlgorithm.h.
|
protectedinherited |
The min number of hits in base cluster selection method.
Definition at line 121 of file ThreeDTracksBaseAlgorithm.h.
|
protectedinherited |
The min length (squared) in base cluster selection method.
Definition at line 122 of file ThreeDTracksBaseAlgorithm.h.
|
private |
The maximum number of repeat loops over tensor tools.
Definition at line 71 of file ThreeDLongitudinalTracksAlgorithm.h.
Referenced by ExamineTensor(), and ReadSettings().
|
protectedinherited |
The overlap tensor.
Definition at line 200 of file ThreeDBaseAlgorithm.h.
Referenced by ExamineTensor(), and ThreeDLongitudinalTracksAlgorithm().
|
protectedinherited |
Address of the input cluster list U.
Definition at line 192 of file ThreeDBaseAlgorithm.h.
|
protectedinherited |
Address of the input cluster list V.
Definition at line 193 of file ThreeDBaseAlgorithm.h.
|
protectedinherited |
Address of the input cluster list W.
Definition at line 194 of file ThreeDBaseAlgorithm.h.
|
private |
The maximum allowed chi2 for associating hit positions from three views.
Definition at line 73 of file ThreeDLongitudinalTracksAlgorithm.h.
Referenced by ReadSettings(), and ThreeDLongitudinalTracksAlgorithm().
|
private |
Pitch used to generate sampling points along tracks.
Definition at line 74 of file ThreeDLongitudinalTracksAlgorithm.h.
Referenced by ReadSettings(), and ThreeDLongitudinalTracksAlgorithm().
|
protectedinherited |
The sliding fit result map.
Definition at line 119 of file ThreeDTracksBaseAlgorithm.h.
|
protectedinherited |
The layer window for the sliding linear fits.
Definition at line 118 of file ThreeDTracksBaseAlgorithm.h.
|
private |
The maximum allowed chi2 for associating end points from three views.
Definition at line 72 of file ThreeDLongitudinalTracksAlgorithm.h.
Referenced by ReadSettings(), and ThreeDLongitudinalTracksAlgorithm().