LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
VertexBasedPfoMopUpAlgorithm class. More...
#include "VertexBasedPfoMopUpAlgorithm.h"
Classes | |
class | ClusterAssociation |
ClusterAssociation class. More... | |
class | ConeParameters |
ConeParameters class. More... | |
class | PfoAssociation |
PfoAssociation class. More... | |
Public Member Functions | |
VertexBasedPfoMopUpAlgorithm () | |
Default constructor. More... | |
virtual void | MergeAndDeletePfos (const pandora::ParticleFlowObject *const pPfoToEnlarge, const pandora::ParticleFlowObject *const pPfoToDelete) const |
Merge and delete a pair of pfos, with a specific set of conventions for cluster merging, vertex use, etc. More... | |
template<typename T > | |
const std::string | GetListName (const T *const pT) const |
Find the name of the list hosting a specific object. More... | |
Static Public Member Functions | |
static const pandora::Cluster * | GetParentCluster (const pandora::ClusterList &clusterList, const pandora::HitType hitType) |
Select the parent cluster (same hit type and most hits) using a provided cluster list and hit type. More... | |
Protected Types | |
typedef std::vector< PfoAssociation > | PfoAssociationList |
typedef std::map< pandora::HitType, ClusterAssociation > | HitTypeToAssociationMap |
typedef std::set< pandora::HitType > | HitTypeSet |
typedef std::map< pandora::HitType, const pandora::Cluster * > | HitTypeToClusterMap |
Protected Member Functions | |
pandora::StatusCode | Run () |
virtual bool | IsVertexAssociated (const pandora::CartesianVector &vertex2D, const LArPointingCluster &pointingCluster) const |
Whether a specified pfo is associated with a specified vertex. More... | |
virtual PfoAssociation | GetPfoAssociation (const pandora::Pfo *const pVertexPfo, const pandora::Pfo *const pDaughterPfo, HitTypeToAssociationMap &hitTypeToAssociationMap) const |
Get pfo association details between a vertex-associated pfo and a non-vertex associated daughter candidate pfo. More... | |
void | GetInputPfos (const pandora::Vertex *const pVertex, pandora::PfoList &vertexPfos, pandora::PfoList &nonVertexPfos) const |
Get the list of input pfos and divide them into vertex-associated and non-vertex-associated lists. More... | |
bool | IsVertexAssociated (const pandora::Pfo *const pPfo, const pandora::Vertex *const pVertex) const |
Whether a specified pfo is associated with a specified vertex. More... | |
void | GetPfoAssociations (const pandora::Vertex *const pVertex, const pandora::PfoList &vertexPfos, const pandora::PfoList &nonVertexPfos, PfoAssociationList &pfoAssociationList) const |
Get the list of associations between vertex-associated pfos and non-vertex-associated pfos. More... | |
PfoAssociation | GetPfoAssociation (const pandora::Vertex *const pVertex, const pandora::Pfo *const pVertexPfo, const pandora::Pfo *const pDaughterPfo) const |
Get pfo association details between a vertex-associated pfo and a non-vertex associated daughter candidate pfo. More... | |
ClusterAssociation | GetClusterAssociation (const pandora::Vertex *const pVertex, const pandora::Cluster *const pVertexCluster, const pandora::Cluster *const pDaughterCluster) const |
Get cluster association details between a vertex-associated cluster and a non-vertex associated daughter candidate cluster. More... | |
bool | ProcessPfoAssociations (const PfoAssociationList &pfoAssociationList) const |
Process the list of pfo associations, merging the best-matching pfo. More... | |
void | MergePfos (const PfoAssociation &pfoAssociation) const |
Merge the vertex and daughter pfos (deleting daughter pfo, merging clusters, etc.) described in the specified pfoAssociation. More... | |
pandora::StatusCode | ReadSettings (const pandora::TiXmlHandle xmlHandle) |
Protected Attributes | |
std::string | m_trackPfoListName |
The input track pfo list name. More... | |
std::string | m_showerPfoListName |
The input shower pfo list name. More... | |
float | m_minVertexLongitudinalDistance |
Vertex association check: min longitudinal distance cut. More... | |
float | m_maxVertexTransverseDistance |
Vertex association check: max transverse distance cut. More... | |
unsigned int | m_minVertexAssociatedHitTypes |
The min number of vertex associated hit types for a vertex associated pfo. More... | |
float | m_coneAngleCentile |
Cluster cone angle is defined using specified centile of distribution of hit half angles. More... | |
float | m_maxConeCosHalfAngle |
Maximum value for cosine of cone half angle. More... | |
float | m_maxConeLengthMultiplier |
Consider hits as bound if inside cone, with projected distance less than N times cone length. More... | |
float | m_directionTanAngle |
Direction determination, look for vertex inside triangle with apex shifted along the cluster length. More... | |
float | m_directionApexShift |
Direction determination, look for vertex inside triangle with apex shifted along the cluster length. More... | |
float | m_meanBoundedFractionCut |
Cut on association info (mean bounded fraction) for determining pfo merges. More... | |
float | m_maxBoundedFractionCut |
Cut on association info (max bounded fraction) for determining pfo merges. More... | |
float | m_minBoundedFractionCut |
Cut on association info (min bounded fraction) for determining pfo merges. More... | |
unsigned int | m_minConsistentDirections |
The minimum number of consistent cluster directions to allow a pfo merge. More... | |
unsigned int | m_minConsistentDirectionsTrack |
The minimum number of consistent cluster directions to allow a merge involving a track pfo. More... | |
pandora::StringVector | m_daughterListNames |
The list of potential daughter object list names. More... | |
VertexBasedPfoMopUpAlgorithm class.
Definition at line 21 of file VertexBasedPfoMopUpAlgorithm.h.
|
protected |
Definition at line 344 of file VertexBasedPfoMopUpAlgorithm.h.
|
protected |
Definition at line 258 of file VertexBasedPfoMopUpAlgorithm.h.
|
protected |
Definition at line 345 of file VertexBasedPfoMopUpAlgorithm.h.
|
protected |
Definition at line 186 of file VertexBasedPfoMopUpAlgorithm.h.
lar_content::VertexBasedPfoMopUpAlgorithm::VertexBasedPfoMopUpAlgorithm | ( | ) |
Default constructor.
Definition at line 26 of file VertexBasedPfoMopUpAlgorithm.cc.
|
protected |
Get cluster association details between a vertex-associated cluster and a non-vertex associated daughter candidate cluster.
pVertex | the address of the vertex |
pVertexCluster | the address of the vertex-associated cluster |
pDaughterCluster | the address of the non-vertex-associated cluster |
Definition at line 208 of file VertexBasedPfoMopUpAlgorithm.cc.
References lar_content::VertexBasedPfoMopUpAlgorithm::ConeParameters::GetBoundedFraction(), lar_content::LArVertexHelper::GetClusterDirectionInZ(), lar_content::LArClusterHelper::GetClusterHitType(), m_coneAngleCentile, m_directionApexShift, m_directionTanAngle, m_maxConeCosHalfAngle, m_maxConeLengthMultiplier, and lar_content::LArGeometryHelper::ProjectPosition().
Referenced by GetPfoAssociations().
|
protected |
Get the list of input pfos and divide them into vertex-associated and non-vertex-associated lists.
pVertex | the address of the 3d vertex |
vertexPfos | to receive the list of vertex-associated pfos |
nonVertexPfos | to receive the list of nonvertex-associated pfos |
Definition at line 101 of file VertexBasedPfoMopUpAlgorithm.cc.
References lar_content::LArClusterHelper::GetClusterHitType(), IsVertexAssociated(), m_minVertexAssociatedHitTypes, m_showerPfoListName, m_trackPfoListName, and lar_content::LArGeometryHelper::ProjectPosition().
Referenced by Run().
|
inherited |
Find the name of the list hosting a specific object.
pT | the address of the object |
Definition at line 19 of file MopUpBaseAlgorithm.cc.
Referenced by lar_content::IsolatedClusterMopUpAlgorithm::DissolveClustersToHits(), lar_content::ClusterMopUpBaseAlgorithm::MakeClusterMerges(), and lar_content::SlidingConeClusterMopUpAlgorithm::MakeClusterMerges().
|
staticinherited |
Select the parent cluster (same hit type and most hits) using a provided cluster list and hit type.
clusterList | the cluster list |
hitType | the hit type |
Definition at line 61 of file PfoMopUpBaseAlgorithm.cc.
Referenced by lar_content::SlidingConeClusterMopUpAlgorithm::MakeClusterMerges(), lar_content::SlidingConeClusterMopUpAlgorithm::ClusterMerge::operator<(), lar_content::SlidingConePfoMopUpAlgorithm::ClusterMerge::operator<(), and lar_content::MasterAlgorithm::StitchPfos().
|
protectedvirtual |
Get pfo association details between a vertex-associated pfo and a non-vertex associated daughter candidate pfo.
pVertexPfo | the address of the vertex-associated pfo |
pDaughterPfo | the address of the non-vertex-associated pfo |
hitTypeToAssociationMap | the hit type to association map |
Reimplemented in lar_content::ShowerPfoMopUpAlgorithm.
Referenced by GetPfoAssociations(), and Run().
|
protected |
Get pfo association details between a vertex-associated pfo and a non-vertex associated daughter candidate pfo.
pVertex | the address of the 3d vertex |
pVertexPfo | the address of the vertex-associated pfo |
pDaughterPfo | the address of the non-vertex-associated pfo |
|
protected |
Get the list of associations between vertex-associated pfos and non-vertex-associated pfos.
pVertex | the address of the 3d vertex |
vertexPfos | the list of vertex-associated pfos |
nonVertexPfos | the list of nonvertex-associated pfos |
pfoAssociationList | to receive the pfo association list |
Definition at line 158 of file VertexBasedPfoMopUpAlgorithm.cc.
References GetClusterAssociation(), lar_content::LArClusterHelper::GetClusterHitType(), and GetPfoAssociation().
Referenced by Run().
|
protectedvirtual |
Whether a specified pfo is associated with a specified vertex.
vertex2D | the 2d vertex position |
pointingCluster | the pointing cluster |
Reimplemented in lar_content::ShowerPfoMopUpAlgorithm.
Referenced by GetInputPfos(), and Run().
|
protected |
Whether a specified pfo is associated with a specified vertex.
pPfo | the address of the pfo |
pVertex | the address of the 3d vertex |
|
virtualinherited |
Merge and delete a pair of pfos, with a specific set of conventions for cluster merging, vertex use, etc.
pPfoToEnlarge | the address of the pfo to enlarge |
pPfoToDelete | the address of the pfo to delete (will become a dangling pointer) |
Definition at line 20 of file PfoMopUpBaseAlgorithm.cc.
Referenced by lar_content::SlidingConePfoMopUpAlgorithm::MakePfoMerges(), and MergePfos().
|
protected |
Merge the vertex and daughter pfos (deleting daughter pfo, merging clusters, etc.) described in the specified pfoAssociation.
pfoAssociation | the pfo association details |
Definition at line 267 of file VertexBasedPfoMopUpAlgorithm.cc.
References lar_content::VertexBasedPfoMopUpAlgorithm::PfoAssociation::GetDaughterPfo(), lar_content::VertexBasedPfoMopUpAlgorithm::PfoAssociation::GetVertexPfo(), m_showerPfoListName, m_trackPfoListName, and lar_content::PfoMopUpBaseAlgorithm::MergeAndDeletePfos().
Referenced by ProcessPfoAssociations().
|
protected |
Process the list of pfo associations, merging the best-matching pfo.
pfoAssociationList | the pfo association list |
Definition at line 228 of file VertexBasedPfoMopUpAlgorithm.cc.
References m_maxBoundedFractionCut, m_meanBoundedFractionCut, m_minBoundedFractionCut, m_minConsistentDirections, m_minConsistentDirectionsTrack, m_trackPfoListName, and MergePfos().
Referenced by Run().
|
protectedvirtual |
Reimplemented from lar_content::PfoMopUpBaseAlgorithm.
Definition at line 508 of file VertexBasedPfoMopUpAlgorithm.cc.
References m_coneAngleCentile, lar_content::MopUpBaseAlgorithm::m_daughterListNames, m_directionApexShift, m_directionTanAngle, m_maxBoundedFractionCut, m_maxConeCosHalfAngle, m_maxConeLengthMultiplier, m_maxVertexTransverseDistance, m_meanBoundedFractionCut, m_minBoundedFractionCut, m_minConsistentDirections, m_minConsistentDirectionsTrack, m_minVertexAssociatedHitTypes, m_minVertexLongitudinalDistance, m_showerPfoListName, m_trackPfoListName, and lar_content::PfoMopUpBaseAlgorithm::ReadSettings().
Referenced by lar_content::ShowerPfoMopUpAlgorithm::ReadSettings().
|
protected |
Definition at line 45 of file VertexBasedPfoMopUpAlgorithm.cc.
References lar_content::LArPointingCluster::GetInnerVertex(), GetInputPfos(), lar_content::LArPointingCluster::GetOuterVertex(), GetPfoAssociation(), GetPfoAssociations(), lar_content::LArPointingClusterHelper::IsNode(), IsVertexAssociated(), m_maxVertexTransverseDistance, m_minVertexLongitudinalDistance, and ProcessPfoAssociations().
|
protected |
Cluster cone angle is defined using specified centile of distribution of hit half angles.
Definition at line 354 of file VertexBasedPfoMopUpAlgorithm.h.
Referenced by GetClusterAssociation(), and ReadSettings().
|
protectedinherited |
The list of potential daughter object list names.
Definition at line 35 of file MopUpBaseAlgorithm.h.
Referenced by lar_content::SlidingConeClusterMopUpAlgorithm::GetAvailableTwoDClusters(), lar_content::ClusterMopUpBaseAlgorithm::GetDaughterClusterLists(), lar_content::SlidingConePfoMopUpAlgorithm::ReadSettings(), and ReadSettings().
|
protected |
Direction determination, look for vertex inside triangle with apex shifted along the cluster length.
Definition at line 359 of file VertexBasedPfoMopUpAlgorithm.h.
Referenced by GetClusterAssociation(), and ReadSettings().
|
protected |
Direction determination, look for vertex inside triangle with apex shifted along the cluster length.
Definition at line 358 of file VertexBasedPfoMopUpAlgorithm.h.
Referenced by GetClusterAssociation(), and ReadSettings().
|
protected |
Cut on association info (max bounded fraction) for determining pfo merges.
Definition at line 362 of file VertexBasedPfoMopUpAlgorithm.h.
Referenced by ProcessPfoAssociations(), ReadSettings(), and lar_content::ShowerPfoMopUpAlgorithm::ShowerPfoMopUpAlgorithm().
|
protected |
Maximum value for cosine of cone half angle.
Definition at line 355 of file VertexBasedPfoMopUpAlgorithm.h.
Referenced by GetClusterAssociation(), and ReadSettings().
|
protected |
Consider hits as bound if inside cone, with projected distance less than N times cone length.
Definition at line 356 of file VertexBasedPfoMopUpAlgorithm.h.
Referenced by GetClusterAssociation(), and ReadSettings().
|
protected |
Vertex association check: max transverse distance cut.
Definition at line 351 of file VertexBasedPfoMopUpAlgorithm.h.
Referenced by lar_content::ShowerPfoMopUpAlgorithm::IsVertexAssociated(), ReadSettings(), Run(), and lar_content::ShowerPfoMopUpAlgorithm::ShowerPfoMopUpAlgorithm().
|
protected |
Cut on association info (mean bounded fraction) for determining pfo merges.
Definition at line 361 of file VertexBasedPfoMopUpAlgorithm.h.
Referenced by ProcessPfoAssociations(), ReadSettings(), and lar_content::ShowerPfoMopUpAlgorithm::ShowerPfoMopUpAlgorithm().
|
protected |
Cut on association info (min bounded fraction) for determining pfo merges.
Definition at line 363 of file VertexBasedPfoMopUpAlgorithm.h.
Referenced by ProcessPfoAssociations(), ReadSettings(), and lar_content::ShowerPfoMopUpAlgorithm::ShowerPfoMopUpAlgorithm().
|
protected |
The minimum number of consistent cluster directions to allow a pfo merge.
Definition at line 365 of file VertexBasedPfoMopUpAlgorithm.h.
Referenced by ProcessPfoAssociations(), ReadSettings(), and lar_content::ShowerPfoMopUpAlgorithm::ShowerPfoMopUpAlgorithm().
|
protected |
The minimum number of consistent cluster directions to allow a merge involving a track pfo.
Definition at line 366 of file VertexBasedPfoMopUpAlgorithm.h.
Referenced by ProcessPfoAssociations(), ReadSettings(), and lar_content::ShowerPfoMopUpAlgorithm::ShowerPfoMopUpAlgorithm().
|
protected |
The min number of vertex associated hit types for a vertex associated pfo.
Definition at line 352 of file VertexBasedPfoMopUpAlgorithm.h.
Referenced by GetInputPfos(), and ReadSettings().
|
protected |
Vertex association check: min longitudinal distance cut.
Definition at line 350 of file VertexBasedPfoMopUpAlgorithm.h.
Referenced by lar_content::ShowerPfoMopUpAlgorithm::IsVertexAssociated(), ReadSettings(), and Run().
|
protected |
The input shower pfo list name.
Definition at line 348 of file VertexBasedPfoMopUpAlgorithm.h.
Referenced by GetInputPfos(), MergePfos(), and ReadSettings().
|
protected |
The input track pfo list name.
Definition at line 347 of file VertexBasedPfoMopUpAlgorithm.h.
Referenced by GetInputPfos(), MergePfos(), ProcessPfoAssociations(), and ReadSettings().