Public Member Functions | Private Member Functions | Private Attributes | List of all members
lar_content::ShowerPfoMopUpAlgorithm Class Reference

ShowerPfoMopUpAlgorithm::Algorithm class. More...

#include <ShowerPfoMopUpAlgorithm.h>

Inheritance diagram for lar_content::ShowerPfoMopUpAlgorithm:
lar_content::VertexBasedPfoMopUpAlgorithm lar_content::PfoMopUpBaseAlgorithm lar_content::MopUpBaseAlgorithm

Public Member Functions

 ShowerPfoMopUpAlgorithm ()
 Default constructor. More...
 
- Public Member Functions inherited from lar_content::VertexBasedPfoMopUpAlgorithm
 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...
 

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...
 

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...
 
- Protected Types inherited from lar_content::VertexBasedPfoMopUpAlgorithm
typedef std::vector< PfoAssociationPfoAssociationList
 
typedef std::map< pandora::HitType, ClusterAssociationHitTypeToAssociationMap
 
typedef std::set< pandora::HitType > HitTypeSet
 
typedef std::map< pandora::HitType, const pandora::Cluster * > HitTypeToClusterMap
 
- Protected Member Functions inherited from lar_content::VertexBasedPfoMopUpAlgorithm
pandora::StatusCode Run ()
 
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 inherited from lar_content::VertexBasedPfoMopUpAlgorithm
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...
 

Detailed Description

ShowerPfoMopUpAlgorithm::Algorithm class.

Definition at line 19 of file ShowerPfoMopUpAlgorithm.h.

Constructor & Destructor Documentation

lar_content::ShowerPfoMopUpAlgorithm::ShowerPfoMopUpAlgorithm ( )

Default constructor.

Definition at line 24 of file ShowerPfoMopUpAlgorithm.cc.

24  :
28 {
29  // ATTN Some default values differ from base class
36 }
unsigned int m_minConsistentDirections
The minimum number of consistent cluster directions to allow a pfo merge.
float m_maxVertexLongitudinalDistance
Vertex association check: max longitudinal distance cut.
float m_maxVertexTransverseDistance
Vertex association check: max transverse distance cut.
float m_maxBoundedFractionCut
Cut on association info (max bounded fraction) for determining pfo merges.
float m_meanBoundedFractionCut
Cut on association info (mean bounded fraction) for determining pfo merges.
unsigned int m_minConsistentDirectionsTrack
The minimum number of consistent cluster directions to allow a merge involving a track pfo...
float m_vertexAngularAllowance
Vertex association check: pointing angular allowance in degrees.
float m_minBoundedFractionCut
Cut on association info (min bounded fraction) for determining pfo merges.

Member Function Documentation

ShowerPfoMopUpAlgorithm::PfoAssociation lar_content::ShowerPfoMopUpAlgorithm::GetPfoAssociation ( const pandora::Pfo *const  pVertexPfo,
const pandora::Pfo *const  pDaughterPfo,
HitTypeToAssociationMap hitTypeToAssociationMap 
) const
privatevirtual

Get pfo association details between a vertex-associated pfo and a non-vertex associated daughter candidate pfo.

Parameters
pVertexPfothe address of the vertex-associated pfo
pDaughterPfothe address of the non-vertex-associated pfo
hitTypeToAssociationMapthe hit type to association map
Returns
the pfo association details

Reimplemented from lar_content::VertexBasedPfoMopUpAlgorithm.

Definition at line 52 of file ShowerPfoMopUpAlgorithm.cc.

54 {
55  return PfoAssociation(pVertexPfo, pDaughterPfo, hitTypeToAssociationMap[TPC_VIEW_U], hitTypeToAssociationMap[TPC_VIEW_V],
56  hitTypeToAssociationMap[TPC_VIEW_W]);
57 }
bool lar_content::ShowerPfoMopUpAlgorithm::IsVertexAssociated ( const pandora::CartesianVector &  vertex2D,
const LArPointingCluster pointingCluster 
) const
privatevirtual

Whether a specified pfo is associated with a specified vertex.

Parameters
vertex2Dthe 2d vertex position
pointingClusterthe pointing cluster
Returns
boolean

Reimplemented from lar_content::VertexBasedPfoMopUpAlgorithm.

Definition at line 40 of file ShowerPfoMopUpAlgorithm.cc.

41 {
42  return (LArPointingClusterHelper::IsNode(vertex2D, pointingCluster.GetInnerVertex(), m_minVertexLongitudinalDistance, m_maxVertexTransverseDistance) ||
44  LArPointingClusterHelper::IsEmission(vertex2D, pointingCluster.GetInnerVertex(), m_minVertexLongitudinalDistance,
46  LArPointingClusterHelper::IsEmission(vertex2D, pointingCluster.GetOuterVertex(), m_minVertexLongitudinalDistance,
48 }
static bool IsEmission(const pandora::CartesianVector &parentVertex, const LArPointingCluster::Vertex &daughterVertex, const float minLongitudinalDistance, const float maxLongitudinalDistance, const float maxTransverseDistance, const float angularAllowance)
Whether pointing vertex is emitted from a given position.
float m_maxVertexLongitudinalDistance
Vertex association check: max longitudinal distance cut.
float m_maxVertexTransverseDistance
Vertex association check: max transverse distance cut.
float m_minVertexLongitudinalDistance
Vertex association check: min longitudinal distance cut.
float m_vertexAngularAllowance
Vertex association check: pointing angular allowance in degrees.
static bool IsNode(const pandora::CartesianVector &parentVertex, const LArPointingCluster::Vertex &daughterVertex, const float minLongitudinalDistance, const float maxTransverseDistance)
Whether pointing vertex is adjacent to a given position.
StatusCode lar_content::ShowerPfoMopUpAlgorithm::ReadSettings ( const pandora::TiXmlHandle  xmlHandle)
privatevirtual

Reimplemented from lar_content::PfoMopUpBaseAlgorithm.

Definition at line 61 of file ShowerPfoMopUpAlgorithm.cc.

62 {
63  PANDORA_RETURN_RESULT_IF_AND_IF(STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=,
64  XmlHelper::ReadValue(xmlHandle, "MaxVertexLongitudinalDistance", m_maxVertexLongitudinalDistance));
65 
66  PANDORA_RETURN_RESULT_IF_AND_IF(
67  STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle, "VertexAngularAllowance", m_vertexAngularAllowance));
68 
70 }
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
float m_maxVertexLongitudinalDistance
Vertex association check: max longitudinal distance cut.
float m_vertexAngularAllowance
Vertex association check: pointing angular allowance in degrees.

Member Data Documentation

float lar_content::ShowerPfoMopUpAlgorithm::m_maxVertexLongitudinalDistance
private

Vertex association check: max longitudinal distance cut.

Definition at line 33 of file ShowerPfoMopUpAlgorithm.h.

float lar_content::ShowerPfoMopUpAlgorithm::m_vertexAngularAllowance
private

Vertex association check: pointing angular allowance in degrees.

Definition at line 34 of file ShowerPfoMopUpAlgorithm.h.


The documentation for this class was generated from the following files: