LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
VertexBasedPfoRecoveryAlgorithm class. More...
#include "VertexBasedPfoRecoveryAlgorithm.h"
Classes | |
class | Particle |
Particle class. More... | |
Public Member Functions | |
VertexBasedPfoRecoveryAlgorithm () | |
Default constructor. More... | |
Private Types | |
typedef std::vector< Particle > | ParticleList |
Private Member Functions | |
pandora::StatusCode | Run () |
pandora::StatusCode | GetAvailableClusters (const pandora::StringVector inputClusterListName, pandora::ClusterVector &clusterVector) const |
Get a vector of available clusters. More... | |
void | BuildSlidingFitResultMap (const pandora::ClusterVector &clusterVector, TwoDSlidingFitResultMap &slidingFitResultMap) const |
Build the map of sliding fit results. More... | |
void | SelectVertexClusters (const pandora::Vertex *const pVertex, const TwoDSlidingFitResultMap &slidingFitResultMap, const pandora::ClusterVector &inputClusters, pandora::ClusterVector &outputClusters) const |
Select clusters in proximity to reconstructed vertex. More... | |
void | MatchThreeViews (const pandora::Vertex *const pVertex, const TwoDSlidingFitResultMap &slidingFitResultMap, const pandora::ClusterVector &selectedClusters, pandora::ClusterSet &vetoList, ParticleList &particleList) const |
Match clusters from three views. More... | |
void | MatchTwoViews (const pandora::Vertex *const pVertex, const TwoDSlidingFitResultMap &slidingFitResultMap, const pandora::ClusterVector &selectedClusters, pandora::ClusterSet &vetoList, ParticleList &particleList) const |
Match clusters from two views. More... | |
void | GetBestChi2 (const pandora::Vertex *const pVertex, const TwoDSlidingFitResultMap &slidingFitResultMap, const pandora::ClusterVector &clusters1, const pandora::ClusterVector &clusters2, const pandora::ClusterVector &clusters3, const pandora::Cluster *&pBestCluster1, const pandora::Cluster *&pBestCluster2, const pandora::Cluster *&pBestCluster3, float &chi2) const |
Get best-matched triplet of clusters from a set of input cluster vectors. More... | |
void | GetBestChi2 (const pandora::Vertex *const pVertex, const TwoDSlidingFitResultMap &slidingFitResultMap, const pandora::ClusterVector &clusters1, const pandora::ClusterVector &clusters2, const pandora::Cluster *&pBestCluster1, const pandora::Cluster *&pBestCluster2, float &chi2) const |
Get best-matched pair of clusters from a set of input cluster vectors. More... | |
float | GetChi2 (const pandora::Vertex *const pVertex, const LArPointingCluster &pointingCluster1, const LArPointingCluster &pointingCluster2) const |
Merge two pointing clusters and return chi-squared metric giving consistency of matching. More... | |
float | GetChi2 (const pandora::Vertex *const pVertex, const LArPointingCluster &pointingCluster1, const LArPointingCluster &pointingCluster2, const LArPointingCluster &pointingCluster3) const |
Merge three clusters between views and return chi-squared metric giving consistency of matching. More... | |
void | SelectAvailableClusters (const pandora::ClusterSet &vetoList, const pandora::ClusterVector &inputVector, pandora::ClusterVector &outputVector) const |
Select cluster which haven't been vetoed. More... | |
void | SelectClusters (const pandora::HitType hitType, const pandora::ClusterVector &inputVector, pandora::ClusterVector &outputVector) const |
Select clusters of a specified hit type. More... | |
const LArPointingCluster::Vertex & | GetInnerVertex (const pandora::CartesianVector &vertex, const LArPointingCluster &cluster) const |
Find nearest end of pointing cluster to a specified position vector. More... | |
const LArPointingCluster::Vertex & | GetOuterVertex (const pandora::CartesianVector &vertex, const LArPointingCluster &cluster) const |
Find furthest end of pointing cluster from a specified position vector. More... | |
void | BuildParticles (const ParticleList &particleList) |
Build particle flow objects from matched clusters. More... | |
pandora::StatusCode | ReadSettings (const pandora::TiXmlHandle xmlHandle) |
Private Attributes | |
pandora::StringVector | m_inputClusterListNames |
The list of input cluster list names. More... | |
std::string | m_outputPfoListName |
The name of the output pfo list. More... | |
unsigned int | m_slidingFitHalfWindow |
float | m_maxLongitudinalDisplacement |
float | m_maxTransverseDisplacement |
float | m_twoViewChi2Cut |
float | m_threeViewChi2Cut |
VertexBasedPfoRecoveryAlgorithm class.
Definition at line 22 of file VertexBasedPfoRecoveryAlgorithm.h.
|
private |
Definition at line 53 of file VertexBasedPfoRecoveryAlgorithm.h.
lar_content::VertexBasedPfoRecoveryAlgorithm::VertexBasedPfoRecoveryAlgorithm | ( | ) |
Default constructor.
Definition at line 22 of file VertexBasedPfoRecoveryAlgorithm.cc.
|
private |
Build particle flow objects from matched clusters.
particleList | the input list of matched clusters |
Definition at line 474 of file VertexBasedPfoRecoveryAlgorithm.cc.
References f, m_outputPfoListName, lar_content::VertexBasedPfoRecoveryAlgorithm::Particle::m_pClusterU, lar_content::VertexBasedPfoRecoveryAlgorithm::Particle::m_pClusterV, and lar_content::VertexBasedPfoRecoveryAlgorithm::Particle::m_pClusterW.
Referenced by Run().
|
private |
Build the map of sliding fit results.
clusterVector | the vector of selected clusters |
halfWindowLayers | the half-window to use for the sliding fits |
slidingFitResultMap | the sliding fit result map |
Definition at line 112 of file VertexBasedPfoRecoveryAlgorithm.cc.
References lar_content::LArClusterHelper::GetClusterHitType(), lar_content::LArPointingCluster::GetLengthSquared(), lar_content::LArGeometryHelper::GetWirePitch(), and m_slidingFitHalfWindow.
Referenced by Run().
|
private |
Get a vector of available clusters.
inputClusterListName | the input vector of the cluster list names |
clusterVector | the output vector of available clusters |
Definition at line 75 of file VertexBasedPfoRecoveryAlgorithm.cc.
References lar_content::LArClusterHelper::GetClusterHitType(), and lar_content::LArClusterHelper::SortByNHits().
Referenced by Run().
|
private |
Get best-matched triplet of clusters from a set of input cluster vectors.
pVertex | the input vertex |
slidingFitResultMap | the mapping between clusters and sliding fit results |
clusters1 | the clusters in the first view |
clusters2 | the clusters in the second view |
clusters3 | the clusters in the third view |
pBestCluster1 | the best-matched cluster from the first view |
pBestCluster2 | the best-matched cluster from the second view |
pBestCluster3 | the best-matched cluster from the third view |
chi2 | the chi-squared metric from the best match |
Referenced by MatchThreeViews(), and MatchTwoViews().
|
private |
Get best-matched pair of clusters from a set of input cluster vectors.
pVertex | the input vertex |
slidingFitResultMap | the mapping between clusters and sliding fit results |
clusters1 | the clusters in the first view |
clusters2 | the clusters in the second view |
pBestCluster1 | the best-matched cluster from the first view |
pBestCluster2 | the best-matched cluster from the second view |
chi2 | the chi-squared metric from the best match |
|
private |
Merge two pointing clusters and return chi-squared metric giving consistency of matching.
pVertex | the input vertex |
pointingCluster1 | the first pointing cluster |
pointingCluster2 | the second pointing cluster |
Referenced by MatchTwoViews().
|
private |
Merge three clusters between views and return chi-squared metric giving consistency of matching.
pVertex | the input vertex |
pointingCluster1 | the first pointing cluster |
pointingCluster2 | the second pointing cluster |
pointingCluster3 | the third pointing cluster |
|
private |
Find nearest end of pointing cluster to a specified position vector.
vertex | the input position |
cluster | the input cluster |
Definition at line 449 of file VertexBasedPfoRecoveryAlgorithm.cc.
References lar_content::LArPointingCluster::GetInnerVertex(), lar_content::LArPointingCluster::GetOuterVertex(), and lar_content::LArPointingCluster::Vertex::GetPosition().
Referenced by GetOuterVertex().
|
private |
Find furthest end of pointing cluster from a specified position vector.
vertex | the input position |
cluster | the input pointing cluster |
Definition at line 462 of file VertexBasedPfoRecoveryAlgorithm.cc.
References lar_content::LArPointingCluster::GetInnerVertex(), GetInnerVertex(), lar_content::LArPointingCluster::GetOuterVertex(), and lar_content::LArPointingCluster::Vertex::IsInnerVertex().
Referenced by MatchTwoViews().
|
private |
Match clusters from three views.
pVertex | the input vertex |
slidingFitResultMap | the mapping between clusters and sliding fit results |
selectedClusters | the input vertex clusters |
vetoList | the list of matched clusters |
particleList | the output list of matched clusters |
Definition at line 183 of file VertexBasedPfoRecoveryAlgorithm.cc.
References GetBestChi2(), lar_content::LArClusterHelper::GetClusterHitType(), m_threeViewChi2Cut, SelectAvailableClusters(), and SelectClusters().
Referenced by Run().
|
private |
Match clusters from two views.
pVertex | the input vertex |
slidingFitResultMap | the mapping between clusters and sliding fit results |
selectedClusters | the input vertex clusters |
vetoList | the list of matched clusters |
particleList | the output list of matched clusters |
Definition at line 231 of file VertexBasedPfoRecoveryAlgorithm.cc.
References f, GetBestChi2(), GetChi2(), lar_content::LArPointingCluster::GetCluster(), lar_content::LArClusterHelper::GetClusterHitType(), GetOuterVertex(), lar_content::LArPointingCluster::Vertex::GetPosition(), m_twoViewChi2Cut, lar_content::LArGeometryHelper::MergeThreePositions3D(), lar_content::LArGeometryHelper::MergeTwoPositions3D(), lar_content::LArGeometryHelper::ProjectPosition(), SelectAvailableClusters(), and SelectClusters().
Referenced by Run().
|
private |
Definition at line 543 of file VertexBasedPfoRecoveryAlgorithm.cc.
References m_inputClusterListNames, m_maxLongitudinalDisplacement, m_maxTransverseDisplacement, m_outputPfoListName, m_slidingFitHalfWindow, m_threeViewChi2Cut, and m_twoViewChi2Cut.
|
private |
Definition at line 33 of file VertexBasedPfoRecoveryAlgorithm.cc.
References BuildParticles(), BuildSlidingFitResultMap(), GetAvailableClusters(), m_inputClusterListNames, MatchThreeViews(), MatchTwoViews(), and SelectVertexClusters().
|
private |
Select cluster which haven't been vetoed.
vetoList | the list of vetoed clusters |
inputVector | the input vector of clusters |
outputVector | the output vector of clusters |
Definition at line 427 of file VertexBasedPfoRecoveryAlgorithm.cc.
Referenced by MatchThreeViews(), and MatchTwoViews().
|
private |
Select clusters of a specified hit type.
hitType | the specified hit type |
inputVector | the input vector of clusters |
outputVector | the output vector of clusters |
Definition at line 438 of file VertexBasedPfoRecoveryAlgorithm.cc.
References lar_content::LArClusterHelper::GetClusterHitType().
Referenced by MatchThreeViews(), and MatchTwoViews().
|
private |
Select clusters in proximity to reconstructed vertex.
pVertex | the input vertex |
slidingFitResultMap | the mapping between clusters and sliding fit results |
inputClusters | the input vector of clusters |
outputClusters | the output vector of clusters |
Definition at line 141 of file VertexBasedPfoRecoveryAlgorithm.cc.
References f, lar_content::LArClusterHelper::GetClusterHitType(), lar_content::LArPointingClusterHelper::GetImpactParameters(), lar_content::LArPointingCluster::GetInnerVertex(), lar_content::LArPointingCluster::GetOuterVertex(), m_maxLongitudinalDisplacement, m_maxTransverseDisplacement, and lar_content::LArGeometryHelper::ProjectPosition().
Referenced by Run().
|
private |
The list of input cluster list names.
Definition at line 201 of file VertexBasedPfoRecoveryAlgorithm.h.
Referenced by ReadSettings(), and Run().
|
private |
Definition at line 205 of file VertexBasedPfoRecoveryAlgorithm.h.
Referenced by ReadSettings(), and SelectVertexClusters().
|
private |
Definition at line 206 of file VertexBasedPfoRecoveryAlgorithm.h.
Referenced by ReadSettings(), and SelectVertexClusters().
|
private |
The name of the output pfo list.
Definition at line 202 of file VertexBasedPfoRecoveryAlgorithm.h.
Referenced by BuildParticles(), and ReadSettings().
|
private |
Definition at line 204 of file VertexBasedPfoRecoveryAlgorithm.h.
Referenced by BuildSlidingFitResultMap(), and ReadSettings().
|
private |
Definition at line 208 of file VertexBasedPfoRecoveryAlgorithm.h.
Referenced by MatchThreeViews(), and ReadSettings().
|
private |
Definition at line 207 of file VertexBasedPfoRecoveryAlgorithm.h.
Referenced by MatchTwoViews(), and ReadSettings().