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... | |
Public Member Functions inherited from lar_content::PfoMopUpBaseAlgorithm | |
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... | |
Public Member Functions inherited from lar_content::MopUpBaseAlgorithm | |
template<typename T > | |
const std::string | GetListName (const T *const pT) const |
Find the name of the list hosting a specific object. 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... | |
Protected Attributes inherited from lar_content::MopUpBaseAlgorithm | |
pandora::StringVector | m_daughterListNames |
The list of potential daughter object list names. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from lar_content::PfoMopUpBaseAlgorithm | |
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... | |
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.
|
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.
|
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.
|
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.
|
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.
|
protected |
Whether a specified pfo is associated with a specified vertex.
pPfo | the address of the pfo |
pVertex | the address of the 3d vertex |
|
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.
|
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.
|
protectedvirtual |
Reimplemented from lar_content::PfoMopUpBaseAlgorithm.
Definition at line 508 of file VertexBasedPfoMopUpAlgorithm.cc.
|
protected |
Definition at line 45 of file VertexBasedPfoMopUpAlgorithm.cc.
|
protected |
Cluster cone angle is defined using specified centile of distribution of hit half angles.
Definition at line 354 of file VertexBasedPfoMopUpAlgorithm.h.
|
protected |
Direction determination, look for vertex inside triangle with apex shifted along the cluster length.
Definition at line 359 of file VertexBasedPfoMopUpAlgorithm.h.
|
protected |
Direction determination, look for vertex inside triangle with apex shifted along the cluster length.
Definition at line 358 of file VertexBasedPfoMopUpAlgorithm.h.
|
protected |
Cut on association info (max bounded fraction) for determining pfo merges.
Definition at line 362 of file VertexBasedPfoMopUpAlgorithm.h.
|
protected |
Maximum value for cosine of cone half angle.
Definition at line 355 of file VertexBasedPfoMopUpAlgorithm.h.
|
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.
|
protected |
Vertex association check: max transverse distance cut.
Definition at line 351 of file VertexBasedPfoMopUpAlgorithm.h.
|
protected |
Cut on association info (mean bounded fraction) for determining pfo merges.
Definition at line 361 of file VertexBasedPfoMopUpAlgorithm.h.
|
protected |
Cut on association info (min bounded fraction) for determining pfo merges.
Definition at line 363 of file VertexBasedPfoMopUpAlgorithm.h.
|
protected |
The minimum number of consistent cluster directions to allow a pfo merge.
Definition at line 365 of file VertexBasedPfoMopUpAlgorithm.h.
|
protected |
The minimum number of consistent cluster directions to allow a merge involving a track pfo.
Definition at line 366 of file VertexBasedPfoMopUpAlgorithm.h.
|
protected |
The min number of vertex associated hit types for a vertex associated pfo.
Definition at line 352 of file VertexBasedPfoMopUpAlgorithm.h.
|
protected |
Vertex association check: min longitudinal distance cut.
Definition at line 350 of file VertexBasedPfoMopUpAlgorithm.h.
|
protected |
The input shower pfo list name.
Definition at line 348 of file VertexBasedPfoMopUpAlgorithm.h.
|
protected |
The input track pfo list name.
Definition at line 347 of file VertexBasedPfoMopUpAlgorithm.h.