Pandora
Pandora source code navigator
|
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. | |
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. | |
template<typename T > | |
const std::string | GetListName (const T *const pT) const |
Find the name of the list hosting a specific object. | |
const std::string & | GetType () const |
Get the type. | |
const std::string & | GetInstanceName () const |
Get the instance name. | |
const Pandora & | GetPandora () const |
Get the associated pandora instance. | |
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. | |
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 () |
Run the algorithm. | |
virtual bool | IsVertexAssociated (const pandora::CartesianVector &vertex2D, const LArPointingCluster &pointingCluster) const |
Whether a specified pfo is associated with a specified vertex. | |
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. | |
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. | |
bool | IsVertexAssociated (const pandora::Pfo *const pPfo, const pandora::Vertex *const pVertex) const |
Whether a specified pfo is associated with a specified vertex. | |
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. | |
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. | |
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. | |
bool | ProcessPfoAssociations (const PfoAssociationList &pfoAssociationList) const |
Process the list of pfo associations, merging the best-matching pfo. | |
void | MergePfos (const PfoAssociation &pfoAssociation) const |
Merge the vertex and daughter pfos (deleting daughter pfo, merging clusters, etc.) described in the specified pfoAssociation. | |
pandora::StatusCode | ReadSettings (const pandora::TiXmlHandle xmlHandle) |
Read the algorithm settings. | |
virtual StatusCode | Initialize () |
Perform any operations that must occur after reading settings, but before running the process. | |
virtual StatusCode | Reset () |
Perform any operations when pandora is reset, typically at the end of each event. | |
StatusCode | RegisterDetails (const Pandora *const pPandora, const std::string &type, const std::string &instanceName) |
Register i) the pandora instance that will run the process and ii) the process type. | |
Protected Attributes | |
std::string | m_trackPfoListName |
The input track pfo list name. | |
std::string | m_showerPfoListName |
The input shower pfo list name. | |
float | m_minVertexLongitudinalDistance |
Vertex association check: min longitudinal distance cut. | |
float | m_maxVertexTransverseDistance |
Vertex association check: max transverse distance cut. | |
unsigned int | m_minVertexAssociatedHitTypes |
The min number of vertex associated hit types for a vertex associated pfo. | |
float | m_coneAngleCentile |
Cluster cone angle is defined using specified centile of distribution of hit half angles. | |
float | m_maxConeCosHalfAngle |
Maximum value for cosine of cone half angle. | |
float | m_maxConeLengthMultiplier |
Consider hits as bound if inside cone, with projected distance less than N times cone length. | |
float | m_directionTanAngle |
Direction determination, look for vertex inside triangle with apex shifted along the cluster length. | |
float | m_directionApexShift |
Direction determination, look for vertex inside triangle with apex shifted along the cluster length. | |
float | m_meanBoundedFractionCut |
Cut on association info (mean bounded fraction) for determining pfo merges. | |
float | m_maxBoundedFractionCut |
Cut on association info (max bounded fraction) for determining pfo merges. | |
float | m_minBoundedFractionCut |
Cut on association info (min bounded fraction) for determining pfo merges. | |
unsigned int | m_minConsistentDirections |
The minimum number of consistent cluster directions to allow a pfo merge. | |
unsigned int | m_minConsistentDirectionsTrack |
The minimum number of consistent cluster directions to allow a merge involving a track pfo. | |
pandora::StringVector | m_daughterListNames |
The list of potential daughter object list names. | |
const Pandora * | m_pPandora |
The pandora object that will run the process. | |
std::string | m_type |
The process type. | |
std::string | m_instanceName |
The process instance name. | |
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.
|
inlineinherited |
|
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.
|
inlineinherited |
|
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.
|
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.
Definition at line 89 of file VertexBasedPfoMopUpAlgorithm.cc.
|
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 |
Definition at line 179 of file VertexBasedPfoMopUpAlgorithm.cc.
|
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.
|
inlineinherited |
|
inlineprotectedvirtualinherited |
Perform any operations that must occur after reading settings, but before running the process.
Reimplemented in lar_content::BdtBeamParticleIdTool, lar_content::BeamParticleIdTool, lar_content::CosmicRayTaggingTool, lar_content::EventReadingAlgorithm, lar_content::EventWritingAlgorithm, lar_content::LArPseudoLayerPlugin, lar_content::LArRotationalTransformationPlugin, EventReadingAlgorithm, and EventWritingAlgorithm.
Definition at line 126 of file Process.h.
|
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.
Definition at line 81 of file VertexBasedPfoMopUpAlgorithm.cc.
|
protected |
Whether a specified pfo is associated with a specified vertex.
pPfo | the address of the pfo |
pVertex | the address of the 3d vertex |
Definition at line 124 of file VertexBasedPfoMopUpAlgorithm.cc.
|
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.
|
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 |
Read the algorithm settings.
xmlHandle | the relevant xml handle |
Reimplemented from lar_content::PfoMopUpBaseAlgorithm.
Definition at line 508 of file VertexBasedPfoMopUpAlgorithm.cc.
|
inlineprotectedinherited |
Register i) the pandora instance that will run the process and ii) the process type.
pPandora | address of the pandora object that will run the process |
type | the process type |
instanceName | the process instance name |
Definition at line 146 of file Process.h.
|
inlineprotectedvirtualinherited |
Perform any operations when pandora is reset, typically at the end of each event.
Reimplemented in lar_content::MasterAlgorithm, lar_content::PostProcessingAlgorithm, and lar_content::PreProcessingAlgorithm.
Definition at line 133 of file Process.h.
|
protectedvirtual |
Run the algorithm.
Implements pandora::Algorithm.
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.
|
protectedinherited |
The list of potential daughter object list names.
Definition at line 35 of file MopUpBaseAlgorithm.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.
|
protectedinherited |
|
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.
|
protectedinherited |
|
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.
|
protectedinherited |