MatchingBaseAlgorithm class. More...
#include <MatchingBaseAlgorithm.h>
Public Member Functions | |
MatchingBaseAlgorithm () | |
Default constructor. More... | |
virtual | ~MatchingBaseAlgorithm () |
Destructor. More... | |
virtual void | UpdateForNewCluster (const pandora::Cluster *const pNewCluster)=0 |
Update to reflect addition of a new cluster to the problem space. More... | |
virtual void | UpdateUponDeletion (const pandora::Cluster *const pDeletedCluster)=0 |
Update to reflect cluster deletion. More... | |
virtual const std::string & | GetClusterListName (const pandora::HitType hitType) const =0 |
Get the cluster list name corresponding to a specified hit type. More... | |
virtual const pandora::ClusterList & | GetInputClusterList (const pandora::HitType hitType) const =0 |
Get the input cluster list corresponding to a specified hit type. More... | |
virtual const pandora::ClusterList & | GetSelectedClusterList (const pandora::HitType hitType) const =0 |
Get the selected cluster list corresponding to a specified hit type. More... | |
virtual void | CalculateOverlapResult (const pandora::Cluster *const pCluster1, const pandora::Cluster *const pCluster2, const pandora::Cluster *const pCluster3=nullptr)=0 |
Calculate cluster overlap result and store in container. 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 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... | |
virtual void | SetPfoParticleId (PandoraContentApi::ParticleFlowObject::Parameters &pfoParameters) const |
Set pfo particle id. More... | |
Protected Member Functions | |
virtual void | SelectAllInputClusters ()=0 |
Select a subset of input clusters for processing in this algorithm. More... | |
virtual void | PrepareAllInputClusters ()=0 |
Perform any preparatory steps required, e.g. caching expensive fit results for clusters. More... | |
virtual void | PerformMainLoop ()=0 |
Main loop over cluster combinations in order to populate the overlap container. Responsible for calling CalculateOverlapResult. More... | |
virtual void | ExamineOverlapContainer ()=0 |
Examine contents of overlap container, collect together best-matching 2D particles and modify clusters as required. More... | |
virtual void | TidyUp ()=0 |
Tidy member variables in derived class. More... | |
virtual pandora::StatusCode | ReadSettings (const pandora::TiXmlHandle xmlHandle) |
Private Member Functions | |
pandora::StatusCode | Run () |
Private Attributes | |
std::string | m_outputPfoListName |
The output pfo list name. More... | |
MatchingBaseAlgorithm class.
Definition at line 38 of file MatchingBaseAlgorithm.h.
lar_content::MatchingBaseAlgorithm::MatchingBaseAlgorithm | ( | ) |
|
virtual |
|
pure virtual |
Calculate cluster overlap result and store in container.
pCluster1 | address of cluster1 |
pCluster2 | address of cluster2 |
pCluster3 | address of cluster3 |
Implemented in lar_content::ThreeViewShowersAlgorithm, lar_content::TwoViewDeltaRayMatchingAlgorithm, lar_content::ThreeViewTrackFragmentsAlgorithm, lar_content::ThreeViewDeltaRayMatchingAlgorithm, lar_content::ThreeViewTransverseTracksAlgorithm, lar_content::TwoViewTransverseTracksAlgorithm, lar_content::ThreeViewLongitudinalTracksAlgorithm, and lar_content::ThreeViewRemnantsAlgorithm.
|
virtual |
Create particles using findings from recent algorithm processing.
protoParticleVector | the proto particle vector |
whether | particles were created |
Definition at line 88 of file MatchingBaseAlgorithm.cc.
|
protectedpure virtual |
Examine contents of overlap container, collect together best-matching 2D particles and modify clusters as required.
Implemented in lar_content::TwoViewDeltaRayMatchingAlgorithm, lar_content::ThreeViewShowersAlgorithm, lar_content::ThreeViewTrackFragmentsAlgorithm, lar_content::ThreeViewTransverseTracksAlgorithm, lar_content::TwoViewTransverseTracksAlgorithm, lar_content::ThreeViewLongitudinalTracksAlgorithm, lar_content::ThreeViewDeltaRayMatchingAlgorithm, and lar_content::ThreeViewRemnantsAlgorithm.
|
pure virtual |
Get the cluster list name corresponding to a specified hit type.
hitType | the hit type |
Implemented in lar_content::NViewMatchingAlgorithm< T >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< float > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >, lar_content::NViewMatchingAlgorithm< TwoViewMatchingControl< TwoViewTransverseOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< FragmentOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< ShowerOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< TransverseOverlapResult > >, lar_content::NViewMatchingAlgorithm< TwoViewMatchingControl< TwoViewDeltaRayOverlapResult > >, and lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >.
|
pure virtual |
Get the input cluster list corresponding to a specified hit type.
hitType | the hit type |
Implemented in lar_content::NViewMatchingAlgorithm< T >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< float > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >, lar_content::NViewMatchingAlgorithm< TwoViewMatchingControl< TwoViewTransverseOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< FragmentOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< ShowerOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< TransverseOverlapResult > >, lar_content::NViewMatchingAlgorithm< TwoViewMatchingControl< TwoViewDeltaRayOverlapResult > >, and lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >.
|
pure virtual |
Get the selected cluster list corresponding to a specified hit type.
hitType | the hit type |
Implemented in lar_content::NViewMatchingAlgorithm< T >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< float > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >, lar_content::NViewMatchingAlgorithm< TwoViewMatchingControl< TwoViewTransverseOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< FragmentOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< ShowerOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< TransverseOverlapResult > >, lar_content::NViewMatchingAlgorithm< TwoViewMatchingControl< TwoViewDeltaRayOverlapResult > >, and lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >.
|
virtual |
Merge clusters together.
clusterMergeMap | the cluster merge map |
Definition at line 48 of file MatchingBaseAlgorithm.cc.
|
protectedpure virtual |
Main loop over cluster combinations in order to populate the overlap container. Responsible for calling CalculateOverlapResult.
Implemented in lar_content::ThreeViewTrackFragmentsAlgorithm, lar_content::NViewMatchingAlgorithm< T >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< float > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >, lar_content::NViewMatchingAlgorithm< TwoViewMatchingControl< TwoViewTransverseOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< FragmentOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< ShowerOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< TransverseOverlapResult > >, lar_content::NViewMatchingAlgorithm< TwoViewMatchingControl< TwoViewDeltaRayOverlapResult > >, and lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >.
|
protectedpure virtual |
Perform any preparatory steps required, e.g. caching expensive fit results for clusters.
Implemented in lar_content::NViewMatchingAlgorithm< T >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< float > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >, lar_content::NViewMatchingAlgorithm< TwoViewMatchingControl< TwoViewTransverseOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< FragmentOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< ShowerOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< TransverseOverlapResult > >, lar_content::NViewMatchingAlgorithm< TwoViewMatchingControl< TwoViewDeltaRayOverlapResult > >, and lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >.
|
virtual |
Perform any preparatory steps required on the input clusters, e.g. caching expensive fit results.
preparedClusterList | to receive the prepared cluster list, non const so as to be able to modify input selected list |
Reimplemented in lar_content::NViewDeltaRayMatchingAlgorithm< T >, lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >, lar_content::NViewDeltaRayMatchingAlgorithm< TwoViewMatchingControl< TwoViewDeltaRayOverlapResult > >, lar_content::NViewTrackMatchingAlgorithm< T >, lar_content::NViewTrackMatchingAlgorithm< TwoViewMatchingControl< TwoViewTransverseOverlapResult > >, lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< FragmentOverlapResult > >, lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< TransverseOverlapResult > >, lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >, and lar_content::ThreeViewShowersAlgorithm.
Definition at line 42 of file MatchingBaseAlgorithm.cc.
|
protectedvirtual |
Reimplemented in lar_content::NViewDeltaRayMatchingAlgorithm< T >, lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >, lar_content::NViewDeltaRayMatchingAlgorithm< TwoViewMatchingControl< TwoViewDeltaRayOverlapResult > >, lar_content::TwoViewDeltaRayMatchingAlgorithm, lar_content::ThreeViewShowersAlgorithm, lar_content::ThreeViewTrackFragmentsAlgorithm, lar_content::ThreeViewTransverseTracksAlgorithm, lar_content::NViewTrackMatchingAlgorithm< T >, lar_content::NViewTrackMatchingAlgorithm< TwoViewMatchingControl< TwoViewTransverseOverlapResult > >, lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< FragmentOverlapResult > >, lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< TransverseOverlapResult > >, lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >, lar_content::TwoViewTransverseTracksAlgorithm, lar_content::ThreeViewLongitudinalTracksAlgorithm, lar_content::ThreeViewDeltaRayMatchingAlgorithm, lar_content::NViewMatchingAlgorithm< T >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< float > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >, lar_content::NViewMatchingAlgorithm< TwoViewMatchingControl< TwoViewTransverseOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< FragmentOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< ShowerOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< TransverseOverlapResult > >, lar_content::NViewMatchingAlgorithm< TwoViewMatchingControl< TwoViewDeltaRayOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >, and lar_content::ThreeViewRemnantsAlgorithm.
Definition at line 158 of file MatchingBaseAlgorithm.cc.
|
private |
Definition at line 135 of file MatchingBaseAlgorithm.cc.
|
protectedpure virtual |
Select a subset of input clusters for processing in this algorithm.
Implemented in lar_content::NViewMatchingAlgorithm< T >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< float > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >, lar_content::NViewMatchingAlgorithm< TwoViewMatchingControl< TwoViewTransverseOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< FragmentOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< ShowerOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< TransverseOverlapResult > >, lar_content::NViewMatchingAlgorithm< TwoViewMatchingControl< TwoViewDeltaRayOverlapResult > >, and lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >.
|
virtual |
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 |
Reimplemented in lar_content::NViewDeltaRayMatchingAlgorithm< T >, lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >, lar_content::NViewDeltaRayMatchingAlgorithm< TwoViewMatchingControl< TwoViewDeltaRayOverlapResult > >, lar_content::NViewTrackMatchingAlgorithm< T >, lar_content::NViewTrackMatchingAlgorithm< TwoViewMatchingControl< TwoViewTransverseOverlapResult > >, lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< FragmentOverlapResult > >, lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< TransverseOverlapResult > >, lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >, lar_content::ThreeViewShowersAlgorithm, and lar_content::ThreeViewRemnantsAlgorithm.
Definition at line 32 of file MatchingBaseAlgorithm.cc.
|
virtual |
Set Pfo properties.
protoParticle | the input proto particle |
pfoParameters | the output pfo parameters |
Definition at line 116 of file MatchingBaseAlgorithm.cc.
|
virtual |
Set pfo particle id.
pfoParameters | the output pfo parameters |
Reimplemented in lar_content::NViewTrackMatchingAlgorithm< T >, lar_content::NViewTrackMatchingAlgorithm< TwoViewMatchingControl< TwoViewTransverseOverlapResult > >, lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< FragmentOverlapResult > >, lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< TransverseOverlapResult > >, and lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >.
Definition at line 128 of file MatchingBaseAlgorithm.cc.
|
protectedpure virtual |
Tidy member variables in derived class.
Implemented in lar_content::NViewDeltaRayMatchingAlgorithm< T >, lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >, lar_content::NViewDeltaRayMatchingAlgorithm< TwoViewMatchingControl< TwoViewDeltaRayOverlapResult > >, lar_content::NViewTrackMatchingAlgorithm< T >, lar_content::NViewTrackMatchingAlgorithm< TwoViewMatchingControl< TwoViewTransverseOverlapResult > >, lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< FragmentOverlapResult > >, lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< TransverseOverlapResult > >, lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >, lar_content::ThreeViewShowersAlgorithm, lar_content::NViewMatchingAlgorithm< T >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< float > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >, lar_content::NViewMatchingAlgorithm< TwoViewMatchingControl< TwoViewTransverseOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< FragmentOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< ShowerOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< TransverseOverlapResult > >, lar_content::NViewMatchingAlgorithm< TwoViewMatchingControl< TwoViewDeltaRayOverlapResult > >, and lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >.
|
pure virtual |
Update to reflect addition of a new cluster to the problem space.
pNewCluster | address of the new cluster |
Implemented in lar_content::NViewTrackMatchingAlgorithm< T >, lar_content::NViewTrackMatchingAlgorithm< TwoViewMatchingControl< TwoViewTransverseOverlapResult > >, lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< FragmentOverlapResult > >, lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< TransverseOverlapResult > >, lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >, lar_content::ThreeViewShowersAlgorithm, lar_content::ThreeViewTrackFragmentsAlgorithm, lar_content::NViewMatchingAlgorithm< T >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< float > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >, lar_content::NViewMatchingAlgorithm< TwoViewMatchingControl< TwoViewTransverseOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< FragmentOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< ShowerOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< TransverseOverlapResult > >, lar_content::NViewMatchingAlgorithm< TwoViewMatchingControl< TwoViewDeltaRayOverlapResult > >, and lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >.
|
pure virtual |
Update to reflect cluster deletion.
pDeletedCluster | address of the deleted cluster |
Implemented in lar_content::NViewDeltaRayMatchingAlgorithm< T >, lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >, lar_content::NViewDeltaRayMatchingAlgorithm< TwoViewMatchingControl< TwoViewDeltaRayOverlapResult > >, lar_content::NViewTrackMatchingAlgorithm< T >, lar_content::NViewTrackMatchingAlgorithm< TwoViewMatchingControl< TwoViewTransverseOverlapResult > >, lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< FragmentOverlapResult > >, lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< TransverseOverlapResult > >, lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >, lar_content::ThreeViewShowersAlgorithm, lar_content::NViewMatchingAlgorithm< T >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< float > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >, lar_content::NViewMatchingAlgorithm< TwoViewMatchingControl< TwoViewTransverseOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< FragmentOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< ShowerOverlapResult > >, lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< TransverseOverlapResult > >, lar_content::NViewMatchingAlgorithm< TwoViewMatchingControl< TwoViewDeltaRayOverlapResult > >, and lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >.
|
private |
The output pfo list name.
Definition at line 181 of file MatchingBaseAlgorithm.h.