LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
ShowerPfoMopUpAlgorithm::Algorithm class. More...
#include "ShowerPfoMopUpAlgorithm.h"
Public Member Functions | |
ShowerPfoMopUpAlgorithm () | |
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 () |
bool | IsVertexAssociated (const pandora::Pfo *const pPfo, const pandora::Vertex *const pVertex) const |
Whether a specified pfo is associated with a specified vertex. 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... | |
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... | |
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... | |
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... | |
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... | |
Private Member Functions | |
bool | IsVertexAssociated (const pandora::CartesianVector &vertex2D, const LArPointingCluster &pointingCluster) const |
Whether a specified pfo is associated with a specified vertex. More... | |
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... | |
pandora::StatusCode | ReadSettings (const pandora::TiXmlHandle xmlHandle) |
Private Attributes | |
float | m_maxVertexLongitudinalDistance |
Vertex association check: max longitudinal distance cut. More... | |
float | m_vertexAngularAllowance |
Vertex association check: pointing angular allowance in degrees. More... | |
ShowerPfoMopUpAlgorithm::Algorithm class.
Definition at line 19 of file ShowerPfoMopUpAlgorithm.h.
|
protectedinherited |
Definition at line 344 of file VertexBasedPfoMopUpAlgorithm.h.
|
protectedinherited |
Definition at line 258 of file VertexBasedPfoMopUpAlgorithm.h.
|
protectedinherited |
Definition at line 345 of file VertexBasedPfoMopUpAlgorithm.h.
|
protectedinherited |
Definition at line 186 of file VertexBasedPfoMopUpAlgorithm.h.
lar_content::ShowerPfoMopUpAlgorithm::ShowerPfoMopUpAlgorithm | ( | ) |
Default constructor.
Definition at line 24 of file ShowerPfoMopUpAlgorithm.cc.
References lar_content::VertexBasedPfoMopUpAlgorithm::m_maxBoundedFractionCut, lar_content::VertexBasedPfoMopUpAlgorithm::m_maxVertexTransverseDistance, lar_content::VertexBasedPfoMopUpAlgorithm::m_meanBoundedFractionCut, lar_content::VertexBasedPfoMopUpAlgorithm::m_minBoundedFractionCut, lar_content::VertexBasedPfoMopUpAlgorithm::m_minConsistentDirections, and lar_content::VertexBasedPfoMopUpAlgorithm::m_minConsistentDirectionsTrack.
|
protectedinherited |
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(), lar_content::VertexBasedPfoMopUpAlgorithm::m_coneAngleCentile, lar_content::VertexBasedPfoMopUpAlgorithm::m_directionApexShift, lar_content::VertexBasedPfoMopUpAlgorithm::m_directionTanAngle, lar_content::VertexBasedPfoMopUpAlgorithm::m_maxConeCosHalfAngle, lar_content::VertexBasedPfoMopUpAlgorithm::m_maxConeLengthMultiplier, and lar_content::LArGeometryHelper::ProjectPosition().
Referenced by lar_content::VertexBasedPfoMopUpAlgorithm::GetPfoAssociations().
|
protectedinherited |
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(), lar_content::VertexBasedPfoMopUpAlgorithm::IsVertexAssociated(), lar_content::VertexBasedPfoMopUpAlgorithm::m_minVertexAssociatedHitTypes, lar_content::VertexBasedPfoMopUpAlgorithm::m_showerPfoListName, lar_content::VertexBasedPfoMopUpAlgorithm::m_trackPfoListName, and lar_content::LArGeometryHelper::ProjectPosition().
Referenced by lar_content::VertexBasedPfoMopUpAlgorithm::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().
|
privatevirtual |
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 from lar_content::VertexBasedPfoMopUpAlgorithm.
Definition at line 52 of file ShowerPfoMopUpAlgorithm.cc.
|
protectedinherited |
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 |
|
protectedinherited |
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 lar_content::VertexBasedPfoMopUpAlgorithm::GetClusterAssociation(), lar_content::LArClusterHelper::GetClusterHitType(), and lar_content::VertexBasedPfoMopUpAlgorithm::GetPfoAssociation().
Referenced by lar_content::VertexBasedPfoMopUpAlgorithm::Run().
|
privatevirtual |
Whether a specified pfo is associated with a specified vertex.
vertex2D | the 2d vertex position |
pointingCluster | the pointing cluster |
Reimplemented from lar_content::VertexBasedPfoMopUpAlgorithm.
Definition at line 40 of file ShowerPfoMopUpAlgorithm.cc.
References lar_content::LArPointingCluster::GetInnerVertex(), lar_content::LArPointingCluster::GetOuterVertex(), lar_content::LArPointingClusterHelper::IsEmission(), lar_content::LArPointingClusterHelper::IsNode(), m_maxVertexLongitudinalDistance, lar_content::VertexBasedPfoMopUpAlgorithm::m_maxVertexTransverseDistance, lar_content::VertexBasedPfoMopUpAlgorithm::m_minVertexLongitudinalDistance, and m_vertexAngularAllowance.
|
protectedinherited |
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 lar_content::VertexBasedPfoMopUpAlgorithm::MergePfos().
|
protectedinherited |
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(), lar_content::VertexBasedPfoMopUpAlgorithm::m_showerPfoListName, lar_content::VertexBasedPfoMopUpAlgorithm::m_trackPfoListName, and lar_content::PfoMopUpBaseAlgorithm::MergeAndDeletePfos().
Referenced by lar_content::VertexBasedPfoMopUpAlgorithm::ProcessPfoAssociations().
|
protectedinherited |
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 lar_content::VertexBasedPfoMopUpAlgorithm::m_maxBoundedFractionCut, lar_content::VertexBasedPfoMopUpAlgorithm::m_meanBoundedFractionCut, lar_content::VertexBasedPfoMopUpAlgorithm::m_minBoundedFractionCut, lar_content::VertexBasedPfoMopUpAlgorithm::m_minConsistentDirections, lar_content::VertexBasedPfoMopUpAlgorithm::m_minConsistentDirectionsTrack, lar_content::VertexBasedPfoMopUpAlgorithm::m_trackPfoListName, and lar_content::VertexBasedPfoMopUpAlgorithm::MergePfos().
Referenced by lar_content::VertexBasedPfoMopUpAlgorithm::Run().
|
privatevirtual |
Reimplemented from lar_content::PfoMopUpBaseAlgorithm.
Definition at line 61 of file ShowerPfoMopUpAlgorithm.cc.
References m_maxVertexLongitudinalDistance, m_vertexAngularAllowance, and lar_content::VertexBasedPfoMopUpAlgorithm::ReadSettings().
|
protectedinherited |
Definition at line 45 of file VertexBasedPfoMopUpAlgorithm.cc.
References lar_content::LArPointingCluster::GetInnerVertex(), lar_content::VertexBasedPfoMopUpAlgorithm::GetInputPfos(), lar_content::LArPointingCluster::GetOuterVertex(), lar_content::VertexBasedPfoMopUpAlgorithm::GetPfoAssociation(), lar_content::VertexBasedPfoMopUpAlgorithm::GetPfoAssociations(), lar_content::LArPointingClusterHelper::IsNode(), lar_content::VertexBasedPfoMopUpAlgorithm::IsVertexAssociated(), lar_content::VertexBasedPfoMopUpAlgorithm::m_maxVertexTransverseDistance, lar_content::VertexBasedPfoMopUpAlgorithm::m_minVertexLongitudinalDistance, and lar_content::VertexBasedPfoMopUpAlgorithm::ProcessPfoAssociations().
|
protectedinherited |
Cluster cone angle is defined using specified centile of distribution of hit half angles.
Definition at line 354 of file VertexBasedPfoMopUpAlgorithm.h.
Referenced by lar_content::VertexBasedPfoMopUpAlgorithm::GetClusterAssociation(), and lar_content::VertexBasedPfoMopUpAlgorithm::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 lar_content::VertexBasedPfoMopUpAlgorithm::ReadSettings().
|
protectedinherited |
Direction determination, look for vertex inside triangle with apex shifted along the cluster length.
Definition at line 359 of file VertexBasedPfoMopUpAlgorithm.h.
Referenced by lar_content::VertexBasedPfoMopUpAlgorithm::GetClusterAssociation(), and lar_content::VertexBasedPfoMopUpAlgorithm::ReadSettings().
|
protectedinherited |
Direction determination, look for vertex inside triangle with apex shifted along the cluster length.
Definition at line 358 of file VertexBasedPfoMopUpAlgorithm.h.
Referenced by lar_content::VertexBasedPfoMopUpAlgorithm::GetClusterAssociation(), and lar_content::VertexBasedPfoMopUpAlgorithm::ReadSettings().
|
protectedinherited |
Cut on association info (max bounded fraction) for determining pfo merges.
Definition at line 362 of file VertexBasedPfoMopUpAlgorithm.h.
Referenced by lar_content::VertexBasedPfoMopUpAlgorithm::ProcessPfoAssociations(), lar_content::VertexBasedPfoMopUpAlgorithm::ReadSettings(), and ShowerPfoMopUpAlgorithm().
|
protectedinherited |
Maximum value for cosine of cone half angle.
Definition at line 355 of file VertexBasedPfoMopUpAlgorithm.h.
Referenced by lar_content::VertexBasedPfoMopUpAlgorithm::GetClusterAssociation(), and lar_content::VertexBasedPfoMopUpAlgorithm::ReadSettings().
|
protectedinherited |
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 lar_content::VertexBasedPfoMopUpAlgorithm::GetClusterAssociation(), and lar_content::VertexBasedPfoMopUpAlgorithm::ReadSettings().
|
private |
Vertex association check: max longitudinal distance cut.
Definition at line 33 of file ShowerPfoMopUpAlgorithm.h.
Referenced by IsVertexAssociated(), and ReadSettings().
|
protectedinherited |
Vertex association check: max transverse distance cut.
Definition at line 351 of file VertexBasedPfoMopUpAlgorithm.h.
Referenced by IsVertexAssociated(), lar_content::VertexBasedPfoMopUpAlgorithm::ReadSettings(), lar_content::VertexBasedPfoMopUpAlgorithm::Run(), and ShowerPfoMopUpAlgorithm().
|
protectedinherited |
Cut on association info (mean bounded fraction) for determining pfo merges.
Definition at line 361 of file VertexBasedPfoMopUpAlgorithm.h.
Referenced by lar_content::VertexBasedPfoMopUpAlgorithm::ProcessPfoAssociations(), lar_content::VertexBasedPfoMopUpAlgorithm::ReadSettings(), and ShowerPfoMopUpAlgorithm().
|
protectedinherited |
Cut on association info (min bounded fraction) for determining pfo merges.
Definition at line 363 of file VertexBasedPfoMopUpAlgorithm.h.
Referenced by lar_content::VertexBasedPfoMopUpAlgorithm::ProcessPfoAssociations(), lar_content::VertexBasedPfoMopUpAlgorithm::ReadSettings(), and ShowerPfoMopUpAlgorithm().
|
protectedinherited |
The minimum number of consistent cluster directions to allow a pfo merge.
Definition at line 365 of file VertexBasedPfoMopUpAlgorithm.h.
Referenced by lar_content::VertexBasedPfoMopUpAlgorithm::ProcessPfoAssociations(), lar_content::VertexBasedPfoMopUpAlgorithm::ReadSettings(), and ShowerPfoMopUpAlgorithm().
|
protectedinherited |
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 lar_content::VertexBasedPfoMopUpAlgorithm::ProcessPfoAssociations(), lar_content::VertexBasedPfoMopUpAlgorithm::ReadSettings(), and ShowerPfoMopUpAlgorithm().
|
protectedinherited |
The min number of vertex associated hit types for a vertex associated pfo.
Definition at line 352 of file VertexBasedPfoMopUpAlgorithm.h.
Referenced by lar_content::VertexBasedPfoMopUpAlgorithm::GetInputPfos(), and lar_content::VertexBasedPfoMopUpAlgorithm::ReadSettings().
|
protectedinherited |
Vertex association check: min longitudinal distance cut.
Definition at line 350 of file VertexBasedPfoMopUpAlgorithm.h.
Referenced by IsVertexAssociated(), lar_content::VertexBasedPfoMopUpAlgorithm::ReadSettings(), and lar_content::VertexBasedPfoMopUpAlgorithm::Run().
|
protectedinherited |
The input shower pfo list name.
Definition at line 348 of file VertexBasedPfoMopUpAlgorithm.h.
Referenced by lar_content::VertexBasedPfoMopUpAlgorithm::GetInputPfos(), lar_content::VertexBasedPfoMopUpAlgorithm::MergePfos(), and lar_content::VertexBasedPfoMopUpAlgorithm::ReadSettings().
|
protectedinherited |
The input track pfo list name.
Definition at line 347 of file VertexBasedPfoMopUpAlgorithm.h.
Referenced by lar_content::VertexBasedPfoMopUpAlgorithm::GetInputPfos(), lar_content::VertexBasedPfoMopUpAlgorithm::MergePfos(), lar_content::VertexBasedPfoMopUpAlgorithm::ProcessPfoAssociations(), and lar_content::VertexBasedPfoMopUpAlgorithm::ReadSettings().
|
private |
Vertex association check: pointing angular allowance in degrees.
Definition at line 34 of file ShowerPfoMopUpAlgorithm.h.
Referenced by IsVertexAssociated(), and ReadSettings().