Pandora
Pandora source code navigator
Loading...
Searching...
No Matches
lar_content::LArPointingClusterHelper Class Reference

LArPointingClusterHelper class. More...

#include "LArPointingClusterHelper.h"

Static Public Member Functions

static float GetLengthSquared (const LArPointingCluster &pointingCluster)
 Calculate distance squared between inner and outer vertices of pointing cluster.
 
static float GetLength (const LArPointingCluster &pointingCluster)
 Calculate distance squared between inner and outer vertices of pointing cluster.
 
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.
 
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.
 
static pandora::CartesianVector GetProjectedPosition (const pandora::CartesianVector &initialPosition, const pandora::CartesianVector &initialDirection, const pandora::Cluster *const pCluster, const float projectionAngularAllowance)
 Get projected position on a cluster from a specified position and direction.
 
static void GetClosestVertices (const bool useX, const bool useY, const bool useZ, const LArPointingCluster &pointingClusterI, const LArPointingCluster &pointingClusterJ, LArPointingCluster::Vertex &closestVertexI, LArPointingCluster::Vertex &closestVertexJ)
 Given a pair of pointing clusters, receive the closest or farthest pair of vertices.
 
static void GetClosestVertices (const LArPointingCluster &pointingClusterI, const LArPointingCluster &pointingClusterJ, LArPointingCluster::Vertex &closestVertexI, LArPointingCluster::Vertex &closestVertexJ)
 Given a pair of pointing clusters, find the closest pair of vertices.
 
static void GetClosestVerticesInX (const LArPointingCluster &pointingClusterI, const LArPointingCluster &pointingClusterJ, LArPointingCluster::Vertex &closestVertexI, LArPointingCluster::Vertex &closestVertexJ)
 Given a pair of pointing clusters, find the pair of vertices with smallest x-separation.
 
static void GetClosestVerticesInYZ (const LArPointingCluster &pointingClusterI, const LArPointingCluster &pointingClusterJ, LArPointingCluster::Vertex &closestVertexI, LArPointingCluster::Vertex &closestVertexJ)
 Given a pair of pointing clusters, find the pair of vertices with smallest yz-separation.
 
static void GetImpactParametersInYZ (const LArPointingCluster::Vertex &pointingVertex, const LArPointingCluster::Vertex &targetVertex, float &longitudinal, float &transverse)
 Calculate impact parameters between a pair of pointing vertices using yz-coordinates.
 
static void GetImpactParameters (const LArPointingCluster::Vertex &pointingVertex, const LArPointingCluster::Vertex &targetVertex, float &longitudinal, float &transverse)
 Calculate impact parameters between a pair of pointing vertices.
 
static void GetImpactParameters (const LArPointingCluster::Vertex &pointingVertex, const pandora::CartesianVector &targetPosition, float &longitudinal, float &transverse)
 Calculate impact parameters between a pointing cluster vertex and a target position.
 
static void GetImpactParameters (const pandora::CartesianVector &initialPosition, const pandora::CartesianVector &initialDirection, const pandora::CartesianVector &targetPosition, float &longitudinal, float &transverse)
 Calculate impact parameters of a specified position and direction to a target position.
 
static void GetIntersection (const LArPointingCluster::Vertex &firstVertex, const LArPointingCluster::Vertex &secondVertex, pandora::CartesianVector &intersectPosition, float &firstDisplacement, float &secondDisplacement)
 Get intersection of two vertices.
 
static void GetAverageDirection (const LArPointingCluster::Vertex &firstVertex, const LArPointingCluster::Vertex &secondVertex, pandora::CartesianVector &averageDirection)
 Get average direction of two vertices.
 
static void GetIntersection (const pandora::CartesianVector &firstPosition, const pandora::CartesianVector &firstDirection, const pandora::CartesianVector &secondPosition, const pandora::CartesianVector &secondDirection, pandora::CartesianVector &intersectPosition, float &firstDisplacement, float &secondDisplacement)
 Get intersection of two vertices.
 
static void GetIntersection (const LArPointingCluster::Vertex &vertexCluster, const pandora::Cluster *const pTargetCluster, pandora::CartesianVector &intersectPosition, float &displacementL, float &displacementT)
 Get intersection of vertex with target cluster.
 
static LArPointingCluster::Vertex GetBestVertexEstimate (const LArPointingClusterVertexList &vertexList, const LArPointingClusterList &pointingClusterList, const float minLongitudinalDistance, const float maxLongitudinalDistance, const float maxTransverseDistance, const float angularAllowance)
 Simple and fast vertex selection, choosing best vertex from a specified list to represent a set of pointing clusters.
 

Static Private Member Functions

static void CollectAssociatedClusters (const LArPointingCluster::Vertex &vertex, const LArPointingClusterList &inputList, const float minLongitudinalDistance, const float maxLongitudinalDistance, const float maxTransverseDistance, const float angularAllowance, LArPointingClusterVertexList &outputList)
 Collect cluster vertices, from a provided input list, associated with a specified vertex.
 
static float GetAssociatedEnergy (const LArPointingCluster::Vertex &vertex, const LArPointingClusterVertexList &clusterVertices)
 Get an estimate of the energy associated with a specified vertex.
 

Detailed Description

LArPointingClusterHelper class.

Definition at line 21 of file LArPointingClusterHelper.h.

Member Function Documentation

◆ CollectAssociatedClusters()

void lar_content::LArPointingClusterHelper::CollectAssociatedClusters ( const LArPointingCluster::Vertex vertex,
const LArPointingClusterList inputList,
const float  minLongitudinalDistance,
const float  maxLongitudinalDistance,
const float  maxTransverseDistance,
const float  angularAllowance,
LArPointingClusterVertexList outputList 
)
staticprivate

Collect cluster vertices, from a provided input list, associated with a specified vertex.

Parameters
vertexthe vertex
inputListthe input list of pointing clusters
minLongitudinalDistancethe min longitudinal distance cut
maxLongitudinalDistancethe max longitudinal distance cut
maxTransverseDistancethe max transverse distance cut
angularAllowancethe pointing angular allowance in degrees
outputListto receive the output list of cluster vertices associated with the specified vertex

Definition at line 357 of file LArPointingClusterHelper.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetAssociatedEnergy()

float lar_content::LArPointingClusterHelper::GetAssociatedEnergy ( const LArPointingCluster::Vertex vertex,
const LArPointingClusterVertexList clusterVertices 
)
staticprivate

Get an estimate of the energy associated with a specified vertex.

Parameters
vertexthe vertex
clusterVerticesthe list of cluster vertices associated with the specified vertex
Returns
the energy associated with a specified vertex

Definition at line 383 of file LArPointingClusterHelper.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetAverageDirection()

void lar_content::LArPointingClusterHelper::GetAverageDirection ( const LArPointingCluster::Vertex firstVertex,
const LArPointingCluster::Vertex secondVertex,
pandora::CartesianVector averageDirection 
)
static

Get average direction of two vertices.

Parameters
firstVertexthe first vertex
secondVertexthe second vertex
averageDirectionthe average direction

Definition at line 228 of file LArPointingClusterHelper.cc.

Here is the call graph for this function:

◆ GetBestVertexEstimate()

LArPointingCluster::Vertex lar_content::LArPointingClusterHelper::GetBestVertexEstimate ( const LArPointingClusterVertexList vertexList,
const LArPointingClusterList pointingClusterList,
const float  minLongitudinalDistance,
const float  maxLongitudinalDistance,
const float  maxTransverseDistance,
const float  angularAllowance 
)
static

Simple and fast vertex selection, choosing best vertex from a specified list to represent a set of pointing clusters.

Parameters
vertexListthe candidate vertex list
pointingClusterListthe pointing cluster list
minLongitudinalDistancethe min longitudinal distance cut
maxLongitudinalDistancethe max longitudinal distance cut
maxTransverseDistancethe max transverse distance cut
angularAllowancethe pointing angular allowance in degrees
Returns
the best vertex estimate

Definition at line 325 of file LArPointingClusterHelper.cc.

Here is the call graph for this function:

◆ GetClosestVertices() [1/2]

void lar_content::LArPointingClusterHelper::GetClosestVertices ( const bool  useX,
const bool  useY,
const bool  useZ,
const LArPointingCluster pointingClusterI,
const LArPointingCluster pointingClusterJ,
LArPointingCluster::Vertex closestVertexI,
LArPointingCluster::Vertex closestVertexJ 
)
static

Given a pair of pointing clusters, receive the closest or farthest pair of vertices.

Parameters
useXuse relative X coordinates in the calculation
useYuse relative Y coordinates in the calculation
useZuse relative Z coordinates in the calculation
pointingClusterIthe first pointing cluster
pointingClusterJthe second pointing cluster
closestVertexIto receive the relevant vertex from the first pointing cluster
closestVertexJto receive the relevant vertex from the second pointing cluster

Definition at line 107 of file LArPointingClusterHelper.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetClosestVertices() [2/2]

void lar_content::LArPointingClusterHelper::GetClosestVertices ( const LArPointingCluster pointingClusterI,
const LArPointingCluster pointingClusterJ,
LArPointingCluster::Vertex closestVertexI,
LArPointingCluster::Vertex closestVertexJ 
)
static

Given a pair of pointing clusters, find the closest pair of vertices.

Parameters
pointingClusterIthe first pointing cluster
pointingClusterJthe second pointing cluster
closestVertexIto receive the relevant vertex from the first pointing cluster
closestVertexJto receive the relevant vertex from the second pointing cluster

Definition at line 160 of file LArPointingClusterHelper.cc.

Here is the call graph for this function:

◆ GetClosestVerticesInX()

void lar_content::LArPointingClusterHelper::GetClosestVerticesInX ( const LArPointingCluster pointingClusterI,
const LArPointingCluster pointingClusterJ,
LArPointingCluster::Vertex closestVertexI,
LArPointingCluster::Vertex closestVertexJ 
)
static

Given a pair of pointing clusters, find the pair of vertices with smallest x-separation.

Parameters
pointingClusterIthe first pointing cluster
pointingClusterJthe second pointing cluster
closestVertexIto receive the relevant vertex from the first pointing cluster
closestVertexJto receive the relevant vertex from the second pointing cluster

Definition at line 168 of file LArPointingClusterHelper.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetClosestVerticesInYZ()

void lar_content::LArPointingClusterHelper::GetClosestVerticesInYZ ( const LArPointingCluster pointingClusterI,
const LArPointingCluster pointingClusterJ,
LArPointingCluster::Vertex closestVertexI,
LArPointingCluster::Vertex closestVertexJ 
)
static

Given a pair of pointing clusters, find the pair of vertices with smallest yz-separation.

Parameters
pointingClusterIthe first pointing cluster
pointingClusterJthe second pointing cluster
closestVertexIto receive the relevant vertex from the first pointing cluster
closestVertexJto receive the relevant vertex from the second pointing cluster

Definition at line 176 of file LArPointingClusterHelper.cc.

Here is the call graph for this function:

◆ GetImpactParameters() [1/3]

void lar_content::LArPointingClusterHelper::GetImpactParameters ( const LArPointingCluster::Vertex pointingVertex,
const LArPointingCluster::Vertex targetVertex,
float &  longitudinal,
float &  transverse 
)
static

Calculate impact parameters between a pair of pointing vertices.

Parameters
pointingVertexthe pointing vertex
targetPositionthe target position
longitidinalthe longitudinal displacement
transversethe transverse displacement

Definition at line 199 of file LArPointingClusterHelper.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetImpactParameters() [2/3]

void lar_content::LArPointingClusterHelper::GetImpactParameters ( const LArPointingCluster::Vertex pointingVertex,
const pandora::CartesianVector targetPosition,
float &  longitudinal,
float &  transverse 
)
static

Calculate impact parameters between a pointing cluster vertex and a target position.

Parameters
pointingVertexthe pointing vertex
targetPositionthe target position
longitidinalthe longitudinal displacement
transversethe transverse displacement

Definition at line 208 of file LArPointingClusterHelper.cc.

Here is the call graph for this function:

◆ GetImpactParameters() [3/3]

void lar_content::LArPointingClusterHelper::GetImpactParameters ( const pandora::CartesianVector initialPosition,
const pandora::CartesianVector initialDirection,
const pandora::CartesianVector targetPosition,
float &  longitudinal,
float &  transverse 
)
static

Calculate impact parameters of a specified position and direction to a target position.

Parameters
initialPositionthe initial position of the cluster
initialDirectionthe initial direction of the cluster
targetPositionthe target position
longitidinalthe longitudinal displacement
transversethe transverse displacement

Definition at line 217 of file LArPointingClusterHelper.cc.

Here is the call graph for this function:

◆ GetImpactParametersInYZ()

void lar_content::LArPointingClusterHelper::GetImpactParametersInYZ ( const LArPointingCluster::Vertex pointingVertex,
const LArPointingCluster::Vertex targetVertex,
float &  longitudinal,
float &  transverse 
)
static

Calculate impact parameters between a pair of pointing vertices using yz-coordinates.

Parameters
pointingVertexthe pointing vertex
targetPositionthe target position
longitidinalthe longitudinal displacement
transversethe transverse displacement

Definition at line 184 of file LArPointingClusterHelper.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetIntersection() [1/3]

void lar_content::LArPointingClusterHelper::GetIntersection ( const LArPointingCluster::Vertex firstVertex,
const LArPointingCluster::Vertex secondVertex,
pandora::CartesianVector intersectPosition,
float &  firstDisplacement,
float &  secondDisplacement 
)
static

Get intersection of two vertices.

Parameters
firstVertexthe first vertex
secondVertexthe second vertex
intersectPositionthe position of the intersection
firstDisplacementthe displacement from first vertex to intersection
secondDisplacementthe displacement from second vertex to intersection

Definition at line 248 of file LArPointingClusterHelper.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetIntersection() [2/3]

void lar_content::LArPointingClusterHelper::GetIntersection ( const LArPointingCluster::Vertex vertexCluster,
const pandora::Cluster *const  pTargetCluster,
pandora::CartesianVector intersectPosition,
float &  displacementL,
float &  displacementT 
)
static

Get intersection of vertex with target cluster.

Parameters
vertexClusterthe vertex
pTargetClusterthe target cluster
intersectPositionthe position of the intersection
displacementLthe longitudinal displacement
displacementTthe transverse displacement

Definition at line 287 of file LArPointingClusterHelper.cc.

Here is the call graph for this function:

◆ GetIntersection() [3/3]

void lar_content::LArPointingClusterHelper::GetIntersection ( const pandora::CartesianVector firstPosition,
const pandora::CartesianVector firstDirection,
const pandora::CartesianVector secondPosition,
const pandora::CartesianVector secondDirection,
pandora::CartesianVector intersectPosition,
float &  firstDisplacement,
float &  secondDisplacement 
)
static

Get intersection of two vertices.

Parameters
firstPositionthe position of the first vertex
firstDirectionthe direction of the first vertex
secondPositionthe position of the second vertex
secondDirectionthe direction of the second vertex
intersectPositionthe position of the intersection
firstDisplacementthe displacement from first vertex to intersection
secondDisplacementthe displacement from second vertex to intersection

Definition at line 263 of file LArPointingClusterHelper.cc.

Here is the call graph for this function:

◆ GetLength()

float lar_content::LArPointingClusterHelper::GetLength ( const LArPointingCluster pointingCluster)
static

Calculate distance squared between inner and outer vertices of pointing cluster.

Parameters
pointingClusterthe input pointing cluster
Returns
float the distance

Definition at line 26 of file LArPointingClusterHelper.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetLengthSquared()

float lar_content::LArPointingClusterHelper::GetLengthSquared ( const LArPointingCluster pointingCluster)
static

Calculate distance squared between inner and outer vertices of pointing cluster.

Parameters
pointingClusterthe input pointing cluster
Returns
float the distance squared

Definition at line 17 of file LArPointingClusterHelper.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetProjectedPosition()

CartesianVector lar_content::LArPointingClusterHelper::GetProjectedPosition ( const pandora::CartesianVector initialPosition,
const pandora::CartesianVector initialDirection,
const pandora::Cluster *const  pCluster,
const float  projectionAngularAllowance 
)
static

Get projected position on a cluster from a specified position and direction.

Parameters
initialPositionthe initial position of the cluster
initialDirectionthe initial direction of the cluster
pClusteraddress of the cluster
projectionAngularAllowancethe projection angular allowance
Returns
the projected position

Definition at line 66 of file LArPointingClusterHelper.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsEmission()

bool lar_content::LArPointingClusterHelper::IsEmission ( const pandora::CartesianVector parentVertex,
const LArPointingCluster::Vertex daughterVertex,
const float  minLongitudinalDistance,
const float  maxLongitudinalDistance,
const float  maxTransverseDistance,
const float  angularAllowance 
)
static

Whether pointing vertex is emitted from a given position.

Parameters
parentVertexthe parent vertex position
daughtervertexthe daughter pointing vertex
minLongitudinalDistancethe min longitudinal distance cut
maxLongitudinalDistancethe max longitudinal distance cut
maxTransverseDistancethe max transverse distance cut
angularAllowancethe pointing angular allowance in degrees
Returns
boolean

Definition at line 47 of file LArPointingClusterHelper.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsNode()

bool lar_content::LArPointingClusterHelper::IsNode ( const pandora::CartesianVector parentVertex,
const LArPointingCluster::Vertex daughterVertex,
const float  minLongitudinalDistance,
const float  maxTransverseDistance 
)
static

Whether pointing vertex is adjacent to a given position.

Parameters
parentVertexthe parent vertex position
daughtervertexthe daughter pointing vertex
minLongitudinalDistancethe min longitudinal distance cut
maxTransverseDistancethe max transverse distance cut
Returns
boolean

Definition at line 33 of file LArPointingClusterHelper.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

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