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

EventSlicingTool class. More...

#include "EventSlicingTool.h"

Inheritance diagram for lar_content::EventSlicingTool:
Collaboration diagram for lar_content::EventSlicingTool:

Public Member Functions

 EventSlicingTool ()
 Default constructor.
 
void RunSlicing (const pandora::Algorithm *const pAlgorithm, const SlicingAlgorithm::HitTypeToNameMap &caloHitListNames, const SlicingAlgorithm::HitTypeToNameMap &clusterListNames, SlicingAlgorithm::SliceList &sliceList)
 Run the slicing tool.
 
const std::string & GetType () const
 Get the type.
 
const std::string & GetInstanceName () const
 Get the instance name.
 
const PandoraGetPandora () const
 Get the associated pandora instance.
 

Protected Member Functions

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

const Pandoram_pPandora
 The pandora object that will run the process.
 
std::string m_type
 The process type.
 
std::string m_instanceName
 The process instance name.
 

Private Types

typedef std::unordered_map< const pandora::Cluster *, const pandora::ParticleFlowObject * > ClusterToPfoMap
 
typedef std::vector< pandora::ClusterVectorClusterSliceList
 
typedef std::unordered_map< const pandora::Cluster *, unsigned int > ClusterToSliceIndexMap
 
typedef KDTreeLinkerAlgo< const pandora::CartesianVector *, 2 > PointKDTree2D
 
typedef KDTreeNodeInfoT< const pandora::CartesianVector *, 2 > PointKDNode2D
 
typedef std::vector< PointKDNode2DPointKDNode2DList
 
typedef std::list< const pandora::CartesianVector * > PointList
 
typedef std::unordered_map< const pandora::CartesianVector *, unsigned int > PointToSliceIndexMap
 

Private Member Functions

void CopyAllHitsToSingleSlice (const pandora::Algorithm *const pAlgorithm, const SlicingAlgorithm::HitTypeToNameMap &caloHitListNames, SlicingAlgorithm::SliceList &sliceList) const
 Copy all the input hits in an event into a single slice.
 
void GetThreeDClusters (const pandora::Algorithm *const pAlgorithm, const std::string &pfoListName, pandora::ClusterList &clusters3D, ClusterToPfoMap &clusterToPfoMap) const
 Get the 3D clusters from a specified list of pfos, storing the 3D clusters in the provided list and populating a map from 3D cluster to parent pfo.
 
void GetClusterSliceList (const pandora::ClusterList &trackClusters3D, const pandora::ClusterList &showerClusters3D, ClusterSliceList &clusterSliceList) const
 Divide the provided lists of 3D track and shower clusters into slices.
 
void CollectAssociatedClusters (const pandora::Cluster *const pClusterInSlice, const pandora::ClusterVector &candidateClusters, const ThreeDSlidingFitResultMap &trackFitResults, const ThreeDSlidingConeFitResultMap &showerConeFitResults, pandora::ClusterVector &clusterSlice, pandora::ClusterSet &usedClusters) const
 Collect all clusters associated with a provided cluster.
 
bool PassPointing (const pandora::Cluster *const pClusterInSlice, const pandora::Cluster *const pCandidateCluster, const ThreeDSlidingFitResultMap &trackFitResults) const
 Compare the provided clusters to assess whether they are associated via pointing (checks association "both ways")
 
bool PassProximity (const pandora::Cluster *const pClusterInSlice, const pandora::Cluster *const pCandidateCluster) const
 Compare the provided clusters to assess whether they are associated via pointing.
 
bool PassShowerCone (const pandora::Cluster *const pConeCluster, const pandora::Cluster *const pNearbyCluster, const ThreeDSlidingConeFitResultMap &showerConeFitResults) const
 Compare the provided clusters to assess whether they are associated via cone fits to the shower cluster (single "direction" check)
 
bool CheckClosestApproach (const LArPointingCluster &cluster1, const LArPointingCluster &cluster2) const
 Check closest approach metrics for a pair of pointing clusters.
 
bool CheckClosestApproach (const LArPointingCluster::Vertex &vertex1, const LArPointingCluster::Vertex &vertex2) const
 Check closest approach metrics for a pair of pointing cluster vertices.
 
bool IsNode (const LArPointingCluster &cluster1, const LArPointingCluster &cluster2) const
 Check whether a pair of pointing clusters are nodally associated.
 
bool IsEmission (const LArPointingCluster &cluster1, const LArPointingCluster &cluster2) const
 Check whether a pair of pointing clusters are consistent with an emission.
 
void CreateSlices (const ClusterSliceList &clusterSliceList, SlicingAlgorithm::SliceList &sliceList, ClusterToSliceIndexMap &clusterToSliceIndexMap) const
 Create new slices for each of the groupings of 3D clusters in the provided cluster slice list.
 
void CopyPfoHitsToSlices (const ClusterToSliceIndexMap &clusterToSliceIndexMap, const ClusterToPfoMap &clusterToPfoMap, SlicingAlgorithm::SliceList &sliceList, pandora::ClusterSet &assignedClusters) const
 Use 3D clusters in the cluster slice list, find their parent pfos and assign all hits in all 2D clusters in the pfos to the relevant slice in the output slice list.
 
void GetRemainingClusters (const pandora::Algorithm *const pAlgorithm, const SlicingAlgorithm::HitTypeToNameMap &clusterListNames, const pandora::ClusterSet &assignedClusters, pandora::ClusterList &remainingClusters) const
 Get the list of 2D clusters with hits yets to be assigned to slices.
 
void GetRemainingClusters (const pandora::Algorithm *const pAlgorithm, const std::string &clusterListName, const pandora::ClusterSet &assignedClusters, pandora::ClusterList &remainingClusters) const
 Get the list of 2D clusters (from a named 2D cluster list) with hits yets to be assigned to slices.
 
void AssignRemainingHitsToSlices (const pandora::ClusterList &remainingClusters, const ClusterToSliceIndexMap &clusterToSliceIndexMap, SlicingAlgorithm::SliceList &sliceList) const
 Use the list of remaining 2D clusters to assign all remaining 2D hits to existing slices in the slice list.
 
void GetKDTreeEntries2D (const SlicingAlgorithm::SliceList &sliceList, PointList &pointsU, PointList &pointsV, PointList &pointsW, PointToSliceIndexMap &pointToSliceIndexMap) const
 Use projections of 3D hits already assigned to slices to populate kd trees to aid assignment of remaining clusters.
 
void GetKDTreeEntries3D (const ClusterToSliceIndexMap &clusterToSliceIndexMap, PointList &pointsU, PointList &pointsV, PointList &pointsW, PointToSliceIndexMap &pointToSliceIndexMap) const
 Use 2D hits already assigned to slices to populate kd trees to aid assignment of remaining clusters.
 
const PointKDNode2DMatchClusterToSlice (const pandora::Cluster *const pCluster2D, PointKDTree2D &kdTree) const
 Use the provided kd tree to efficiently identify the most appropriate slice for the provided 2D cluster.
 
pandora::StatusCode ReadSettings (const pandora::TiXmlHandle xmlHandle)
 Read the algorithm settings.
 

Static Private Member Functions

static bool SortPoints (const pandora::CartesianVector *const pLhs, const pandora::CartesianVector *const pRhs)
 Sort points (use Z, followed by X, followed by Y)
 

Private Attributes

std::string m_trackPfoListName
 The name of the input track pfo list.
 
std::string m_showerPfoListName
 The name of the input shower pfo list.
 
unsigned int m_minHitsPer3DCluster
 The minimum number of hits in a 3D cluster to warrant consideration in slicing.
 
unsigned int m_min3DHitsToSeedNewSlice
 The minimum number of hits in a 3D cluster to seed a new slice.
 
unsigned int m_halfWindowLayers
 The number of layers to use for half-window of sliding fit.
 
bool m_usePointingAssociation
 Whether to use pointing association.
 
float m_minVertexLongitudinalDistance
 Pointing association check: min longitudinal distance cut.
 
float m_maxVertexLongitudinalDistance
 Pointing association check: max longitudinal distance cut.
 
float m_maxVertexTransverseDistance
 Pointing association check: max transverse distance cut.
 
float m_vertexAngularAllowance
 Pointing association check: pointing angular allowance in degrees.
 
float m_maxClosestApproach
 Pointing association: max distance of closest approach between straight line fits.
 
float m_maxInterceptDistance
 Pointing association: max distance from cluster vertex to point of closest approach.
 
bool m_useProximityAssociation
 Whether to use proximity association.
 
float m_maxHitSeparationSquared
 Proximity association: max distance allowed between the closest pair of hits.
 
bool m_useShowerConeAssociation
 Whether to use shower cone association.
 
unsigned int m_nConeFitLayers
 The number of layers over which to sum fitted direction to obtain cone fit.
 
unsigned int m_nConeFits
 The number of cone fits to perform, spread roughly uniformly along the shower length.
 
float m_coneLengthMultiplier
 The cone length multiplier to use when calculating bounded cluster fractions.
 
float m_maxConeLength
 The maximum allowed cone length to use when calculating bounded cluster fractions.
 
float m_coneTanHalfAngle1
 The cone tan half angle to use when calculating bounded cluster fractions 1.
 
float m_coneBoundedFraction1
 The minimum cluster bounded fraction for association 1.
 
float m_coneTanHalfAngle2
 The cone tan half angle to use when calculating bounded cluster fractions 2.
 
float m_coneBoundedFraction2
 The minimum cluster bounded fraction for association 2.
 
bool m_use3DProjectionsInHitPickUp
 Whether to include 3D cluster projections when assigning remaining clusters to slices.
 

Detailed Description

EventSlicingTool class.

Definition at line 32 of file EventSlicingTool.h.

Member Typedef Documentation

◆ ClusterSliceList

Definition at line 68 of file EventSlicingTool.h.

◆ ClusterToPfoMap

Definition at line 54 of file EventSlicingTool.h.

◆ ClusterToSliceIndexMap

typedef std::unordered_map<const pandora::Cluster *, unsigned int> lar_content::EventSlicingTool::ClusterToSliceIndexMap
private

Definition at line 168 of file EventSlicingTool.h.

◆ PointKDNode2D

◆ PointKDNode2DList

Definition at line 225 of file EventSlicingTool.h.

◆ PointKDTree2D

◆ PointList

Definition at line 227 of file EventSlicingTool.h.

◆ PointToSliceIndexMap

typedef std::unordered_map<const pandora::CartesianVector *, unsigned int> lar_content::EventSlicingTool::PointToSliceIndexMap
private

Definition at line 228 of file EventSlicingTool.h.

Constructor & Destructor Documentation

◆ EventSlicingTool()

lar_content::EventSlicingTool::EventSlicingTool ( )

Default constructor.

Definition at line 34 of file EventSlicingTool.cc.

Member Function Documentation

◆ AssignRemainingHitsToSlices()

void lar_content::EventSlicingTool::AssignRemainingHitsToSlices ( const pandora::ClusterList remainingClusters,
const ClusterToSliceIndexMap clusterToSliceIndexMap,
SlicingAlgorithm::SliceList sliceList 
) const
private

Use the list of remaining 2D clusters to assign all remaining 2D hits to existing slices in the slice list.

Parameters
remainingClustersthe list of 2D clusters with hits yet to be assigned to slices
clusterToSliceIndexMapthe mapping from 3D clusters to index in the slice list
sliceListthe list containing slices to be populated with 2D hits

Definition at line 527 of file EventSlicingTool.cc.

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

◆ CheckClosestApproach() [1/2]

bool lar_content::EventSlicingTool::CheckClosestApproach ( const LArPointingCluster cluster1,
const LArPointingCluster cluster2 
) const
private

Check closest approach metrics for a pair of pointing clusters.

Parameters
cluster1the first pointing cluster
cluster2the second pointing cluster
Returns
whether the pointing clusters are declared to be in the same slice

Definition at line 345 of file EventSlicingTool.cc.

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

◆ CheckClosestApproach() [2/2]

bool lar_content::EventSlicingTool::CheckClosestApproach ( const LArPointingCluster::Vertex vertex1,
const LArPointingCluster::Vertex vertex2 
) const
private

Check closest approach metrics for a pair of pointing cluster vertices.

Parameters
vertex1the first pointing cluster vertex
vertex2the second pointing cluster vertex
Returns
whether the pointing clusters are declared to be in the same slice

Definition at line 355 of file EventSlicingTool.cc.

Here is the call graph for this function:

◆ CollectAssociatedClusters()

void lar_content::EventSlicingTool::CollectAssociatedClusters ( const pandora::Cluster *const  pClusterInSlice,
const pandora::ClusterVector candidateClusters,
const ThreeDSlidingFitResultMap trackFitResults,
const ThreeDSlidingConeFitResultMap showerConeFitResults,
pandora::ClusterVector clusterSlice,
pandora::ClusterSet usedClusters 
) const
private

Collect all clusters associated with a provided cluster.

Parameters
pClusterInSlicethe address of the cluster already in a slice
candidateClustersthe list of candidate clusters
trackFitResultsthe map of sliding fit results for track candidate clusters
showerConeFitResultsthe map of sliding const fit results for shower candidate clusters
clusterSlicethe cluster slice
usedClustersthe list of clusters already added to slices

Definition at line 228 of file EventSlicingTool.cc.

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

◆ CopyAllHitsToSingleSlice()

void lar_content::EventSlicingTool::CopyAllHitsToSingleSlice ( const pandora::Algorithm *const  pAlgorithm,
const SlicingAlgorithm::HitTypeToNameMap caloHitListNames,
SlicingAlgorithm::SliceList sliceList 
) const
private

Copy all the input hits in an event into a single slice.

Parameters
pAlgorithmthe address of the calling algorithm
caloHitListNamesthe hit type to calo hit list name map
sliceListthe slice list to receive the single new slice

Definition at line 100 of file EventSlicingTool.cc.

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

◆ CopyPfoHitsToSlices()

void lar_content::EventSlicingTool::CopyPfoHitsToSlices ( const ClusterToSliceIndexMap clusterToSliceIndexMap,
const ClusterToPfoMap clusterToPfoMap,
SlicingAlgorithm::SliceList sliceList,
pandora::ClusterSet assignedClusters 
) const
private

Use 3D clusters in the cluster slice list, find their parent pfos and assign all hits in all 2D clusters in the pfos to the relevant slice in the output slice list.

Parameters
clusterToSliceIndexMapthe mapping from 3D clusters to index in the slice list
clusterToPfoMapthe mapping from 3D clusters to parent pfos
sliceListthe list containing slices to be populated with 2D hits
assignedClustersto receive the list of 2D clusters with hits assigned to slices

Definition at line 445 of file EventSlicingTool.cc.

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

◆ CreateSlices()

void lar_content::EventSlicingTool::CreateSlices ( const ClusterSliceList clusterSliceList,
SlicingAlgorithm::SliceList sliceList,
ClusterToSliceIndexMap clusterToSliceIndexMap 
) const
private

Create new slices for each of the groupings of 3D clusters in the provided cluster slice list.

Parameters
clusterSliceListthe list of 3D clusters, divided into slices (one 3D cluster list per slice)
sliceListthe slice list to receive the new slices
clusterToSliceIndexMapto receive the mapping from 3D clusters to index in the slice list

Definition at line 423 of file EventSlicingTool.cc.

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

◆ GetClusterSliceList()

void lar_content::EventSlicingTool::GetClusterSliceList ( const pandora::ClusterList trackClusters3D,
const pandora::ClusterList showerClusters3D,
ClusterSliceList clusterSliceList 
) const
private

Divide the provided lists of 3D track and shower clusters into slices.

Parameters
trackClusters3Dthe list of 3D track clusters
showerClusters3Dthe list of 3D shower clusters
clusterSliceListto receive the list of 3D clusters, divided into slices (one 3D cluster list per slice)

Definition at line 170 of file EventSlicingTool.cc.

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

◆ GetInstanceName()

const std::string & pandora::Process::GetInstanceName ( ) const
inlineinherited

Get the instance name.

Returns
The instance name

Definition at line 109 of file Process.h.

◆ GetKDTreeEntries2D()

void lar_content::EventSlicingTool::GetKDTreeEntries2D ( const SlicingAlgorithm::SliceList sliceList,
PointList pointsU,
PointList pointsV,
PointList pointsW,
PointToSliceIndexMap pointToSliceIndexMap 
) const
private

Use projections of 3D hits already assigned to slices to populate kd trees to aid assignment of remaining clusters.

Parameters
sliceListthe slice list
pointsUto receive the points in the u view
pointsVto receive the points in the v view
pointsWto receive the points in the w view
pointToSliceIndexMapto receive the mapping from points to slice index

Definition at line 591 of file EventSlicingTool.cc.

Here is the caller graph for this function:

◆ GetKDTreeEntries3D()

void lar_content::EventSlicingTool::GetKDTreeEntries3D ( const ClusterToSliceIndexMap clusterToSliceIndexMap,
PointList pointsU,
PointList pointsV,
PointList pointsW,
PointToSliceIndexMap pointToSliceIndexMap 
) const
private

Use 2D hits already assigned to slices to populate kd trees to aid assignment of remaining clusters.

Parameters
clusterToSliceIndexMapthe 3D cluster to slice index map
pointsUto receive the points in the u view
pointsVto receive the points in the v view
pointsWto receive the points in the w view
pointToSliceIndexMapto receive the mapping from points to slice index

Definition at line 625 of file EventSlicingTool.cc.

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

◆ GetPandora()

const Pandora & pandora::Process::GetPandora ( ) const
inlineinherited

Get the associated pandora instance.

Returns
the associated pandora instance

Definition at line 116 of file Process.h.

◆ GetRemainingClusters() [1/2]

void lar_content::EventSlicingTool::GetRemainingClusters ( const pandora::Algorithm *const  pAlgorithm,
const SlicingAlgorithm::HitTypeToNameMap clusterListNames,
const pandora::ClusterSet assignedClusters,
pandora::ClusterList remainingClusters 
) const
private

Get the list of 2D clusters with hits yets to be assigned to slices.

Parameters
pAlgorithmthe address of the calling algorithm
clusterListNamesthe hit type to cluster list name map
assignedClustersthe list of 2D clusters with hits assigned to slices
remainingClustersto receive the list of 2D clusters with hits yet to be assigned to slices

Definition at line 483 of file EventSlicingTool.cc.

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

◆ GetRemainingClusters() [2/2]

void lar_content::EventSlicingTool::GetRemainingClusters ( const pandora::Algorithm *const  pAlgorithm,
const std::string &  clusterListName,
const pandora::ClusterSet assignedClusters,
pandora::ClusterList remainingClusters 
) const
private

Get the list of 2D clusters (from a named 2D cluster list) with hits yets to be assigned to slices.

Parameters
pAlgorithmthe address of the calling algorithm
clusterListNamethe cluster list name
assignedClustersthe list of 2D clusters with hits assigned to slices
remainingClustersto receive the list of 2D clusters with hits yet to be assigned to slices

Definition at line 493 of file EventSlicingTool.cc.

Here is the call graph for this function:

◆ GetThreeDClusters()

void lar_content::EventSlicingTool::GetThreeDClusters ( const pandora::Algorithm *const  pAlgorithm,
const std::string &  pfoListName,
pandora::ClusterList clusters3D,
ClusterToPfoMap clusterToPfoMap 
) const
private

Get the 3D clusters from a specified list of pfos, storing the 3D clusters in the provided list and populating a map from 3D cluster to parent pfo.

Parameters
pAlgorithmthe address of the calling algorithm
pfoListNamethe pfo list name
clusters3Dto receive the list of 3D clusters
clusterToPfoMapto receive the mapping from 3D clusters to parent pfos

Definition at line 133 of file EventSlicingTool.cc.

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

◆ GetType()

const std::string & pandora::Process::GetType ( ) const
inlineinherited

Get the type.

Returns
The type

Definition at line 102 of file Process.h.

◆ Initialize()

StatusCode pandora::Process::Initialize ( )
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.

Here is the caller graph for this function:

◆ IsEmission()

bool lar_content::EventSlicingTool::IsEmission ( const LArPointingCluster cluster1,
const LArPointingCluster cluster2 
) const
private

Check whether a pair of pointing clusters are consistent with an emission.

Parameters
cluster1the first pointing cluster
cluster2the second pointing cluster
Returns
whether the pointing clusters are declared to be in the same slice

Definition at line 401 of file EventSlicingTool.cc.

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

◆ IsNode()

bool lar_content::EventSlicingTool::IsNode ( const LArPointingCluster cluster1,
const LArPointingCluster cluster2 
) const
private

Check whether a pair of pointing clusters are nodally associated.

Parameters
cluster1the first pointing cluster
cluster2the second pointing cluster
Returns
whether the pointing clusters are declared to be in the same slice

Definition at line 379 of file EventSlicingTool.cc.

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

◆ MatchClusterToSlice()

const EventSlicingTool::PointKDNode2D * lar_content::EventSlicingTool::MatchClusterToSlice ( const pandora::Cluster *const  pCluster2D,
PointKDTree2D kdTree 
) const
private

Use the provided kd tree to efficiently identify the most appropriate slice for the provided 2D cluster.

Parameters
pCluster2Dthe address of the 2D cluster
kdTreethe kd tree
Returns
the nearest-neighbour point identified by the kd tree

Definition at line 667 of file EventSlicingTool.cc.

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

◆ PassPointing()

bool lar_content::EventSlicingTool::PassPointing ( const pandora::Cluster *const  pClusterInSlice,
const pandora::Cluster *const  pCandidateCluster,
const ThreeDSlidingFitResultMap trackFitResults 
) const
private

Compare the provided clusters to assess whether they are associated via pointing (checks association "both ways")

Parameters
pClusterInSliceaddress of a cluster already in the slice
pCandidateClusteraddress of the candidate cluster
trackFitResultsthe map of sliding fit results for track candidate clusters
Returns
whether an addition to the cluster slice should be made

Definition at line 257 of file EventSlicingTool.cc.

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

◆ PassProximity()

bool lar_content::EventSlicingTool::PassProximity ( const pandora::Cluster *const  pClusterInSlice,
const pandora::Cluster *const  pCandidateCluster 
) const
private

Compare the provided clusters to assess whether they are associated via pointing.

Parameters
pClusterInSliceaddress of a cluster already in the slice
pCandidateClusteraddress of the candidate cluster
Returns
whether an addition to the cluster slice should be made

Definition at line 280 of file EventSlicingTool.cc.

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

◆ PassShowerCone()

bool lar_content::EventSlicingTool::PassShowerCone ( const pandora::Cluster *const  pConeCluster,
const pandora::Cluster *const  pNearbyCluster,
const ThreeDSlidingConeFitResultMap showerConeFitResults 
) const
private

Compare the provided clusters to assess whether they are associated via cone fits to the shower cluster (single "direction" check)

Parameters
pClusterInSliceaddress of a cluster already in the slice
pCandidateClusteraddress of the candidate cluster
showerConeFitResultsthe map of sliding cone fit results for shower candidate clusters
Returns
whether an addition to the cluster slice should be made

Definition at line 304 of file EventSlicingTool.cc.

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

◆ ReadSettings()

StatusCode lar_content::EventSlicingTool::ReadSettings ( const pandora::TiXmlHandle  xmlHandle)
privatevirtual

Read the algorithm settings.

Parameters
xmlHandlethe relevant xml handle

Implements pandora::Process.

Definition at line 726 of file EventSlicingTool.cc.

Here is the call graph for this function:

◆ RegisterDetails()

StatusCode pandora::Process::RegisterDetails ( const Pandora *const  pPandora,
const std::string &  type,
const std::string &  instanceName 
)
inlineprotectedinherited

Register i) the pandora instance that will run the process and ii) the process type.

Parameters
pPandoraaddress of the pandora object that will run the process
typethe process type
instanceNamethe process instance name

Definition at line 146 of file Process.h.

Here is the caller graph for this function:

◆ Reset()

StatusCode pandora::Process::Reset ( )
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.

Here is the caller graph for this function:

◆ RunSlicing()

void lar_content::EventSlicingTool::RunSlicing ( const pandora::Algorithm *const  pAlgorithm,
const SlicingAlgorithm::HitTypeToNameMap caloHitListNames,
const SlicingAlgorithm::HitTypeToNameMap clusterListNames,
SlicingAlgorithm::SliceList sliceList 
)
virtual

Run the slicing tool.

Parameters
pAlgorithmaddress of the calling algorithm
caloHitListNamesthe hit type to calo hit list name map
clusterListNamesthe hit type to cluster list name map
sliceListto receive the populated slice list

Implements lar_content::EventSlicingBaseTool.

Definition at line 62 of file EventSlicingTool.cc.

Here is the call graph for this function:

◆ SortPoints()

bool lar_content::EventSlicingTool::SortPoints ( const pandora::CartesianVector *const  pLhs,
const pandora::CartesianVector *const  pRhs 
)
staticprivate

Sort points (use Z, followed by X, followed by Y)

Parameters
pLhsaddress of first point
pRhsaddress of second point

Definition at line 711 of file EventSlicingTool.cc.

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

Member Data Documentation

◆ m_coneBoundedFraction1

float lar_content::EventSlicingTool::m_coneBoundedFraction1
private

The minimum cluster bounded fraction for association 1.

Definition at line 298 of file EventSlicingTool.h.

◆ m_coneBoundedFraction2

float lar_content::EventSlicingTool::m_coneBoundedFraction2
private

The minimum cluster bounded fraction for association 2.

Definition at line 300 of file EventSlicingTool.h.

◆ m_coneLengthMultiplier

float lar_content::EventSlicingTool::m_coneLengthMultiplier
private

The cone length multiplier to use when calculating bounded cluster fractions.

Definition at line 295 of file EventSlicingTool.h.

◆ m_coneTanHalfAngle1

float lar_content::EventSlicingTool::m_coneTanHalfAngle1
private

The cone tan half angle to use when calculating bounded cluster fractions 1.

Definition at line 297 of file EventSlicingTool.h.

◆ m_coneTanHalfAngle2

float lar_content::EventSlicingTool::m_coneTanHalfAngle2
private

The cone tan half angle to use when calculating bounded cluster fractions 2.

Definition at line 299 of file EventSlicingTool.h.

◆ m_halfWindowLayers

unsigned int lar_content::EventSlicingTool::m_halfWindowLayers
private

The number of layers to use for half-window of sliding fit.

Definition at line 279 of file EventSlicingTool.h.

◆ m_instanceName

std::string pandora::Process::m_instanceName
protectedinherited

The process instance name.

Definition at line 89 of file Process.h.

◆ m_maxClosestApproach

float lar_content::EventSlicingTool::m_maxClosestApproach
private

Pointing association: max distance of closest approach between straight line fits.

Definition at line 286 of file EventSlicingTool.h.

◆ m_maxConeLength

float lar_content::EventSlicingTool::m_maxConeLength
private

The maximum allowed cone length to use when calculating bounded cluster fractions.

Definition at line 296 of file EventSlicingTool.h.

◆ m_maxHitSeparationSquared

float lar_content::EventSlicingTool::m_maxHitSeparationSquared
private

Proximity association: max distance allowed between the closest pair of hits.

Definition at line 290 of file EventSlicingTool.h.

◆ m_maxInterceptDistance

float lar_content::EventSlicingTool::m_maxInterceptDistance
private

Pointing association: max distance from cluster vertex to point of closest approach.

Definition at line 287 of file EventSlicingTool.h.

◆ m_maxVertexLongitudinalDistance

float lar_content::EventSlicingTool::m_maxVertexLongitudinalDistance
private

Pointing association check: max longitudinal distance cut.

Definition at line 283 of file EventSlicingTool.h.

◆ m_maxVertexTransverseDistance

float lar_content::EventSlicingTool::m_maxVertexTransverseDistance
private

Pointing association check: max transverse distance cut.

Definition at line 284 of file EventSlicingTool.h.

◆ m_min3DHitsToSeedNewSlice

unsigned int lar_content::EventSlicingTool::m_min3DHitsToSeedNewSlice
private

The minimum number of hits in a 3D cluster to seed a new slice.

Definition at line 278 of file EventSlicingTool.h.

◆ m_minHitsPer3DCluster

unsigned int lar_content::EventSlicingTool::m_minHitsPer3DCluster
private

The minimum number of hits in a 3D cluster to warrant consideration in slicing.

Definition at line 277 of file EventSlicingTool.h.

◆ m_minVertexLongitudinalDistance

float lar_content::EventSlicingTool::m_minVertexLongitudinalDistance
private

Pointing association check: min longitudinal distance cut.

Definition at line 282 of file EventSlicingTool.h.

◆ m_nConeFitLayers

unsigned int lar_content::EventSlicingTool::m_nConeFitLayers
private

The number of layers over which to sum fitted direction to obtain cone fit.

Definition at line 293 of file EventSlicingTool.h.

◆ m_nConeFits

unsigned int lar_content::EventSlicingTool::m_nConeFits
private

The number of cone fits to perform, spread roughly uniformly along the shower length.

Definition at line 294 of file EventSlicingTool.h.

◆ m_pPandora

const Pandora* pandora::Process::m_pPandora
protectedinherited

The pandora object that will run the process.

Definition at line 87 of file Process.h.

◆ m_showerPfoListName

std::string lar_content::EventSlicingTool::m_showerPfoListName
private

The name of the input shower pfo list.

Definition at line 275 of file EventSlicingTool.h.

◆ m_trackPfoListName

std::string lar_content::EventSlicingTool::m_trackPfoListName
private

The name of the input track pfo list.

Definition at line 274 of file EventSlicingTool.h.

◆ m_type

std::string pandora::Process::m_type
protectedinherited

The process type.

Definition at line 88 of file Process.h.

◆ m_use3DProjectionsInHitPickUp

bool lar_content::EventSlicingTool::m_use3DProjectionsInHitPickUp
private

Whether to include 3D cluster projections when assigning remaining clusters to slices.

Definition at line 302 of file EventSlicingTool.h.

◆ m_usePointingAssociation

bool lar_content::EventSlicingTool::m_usePointingAssociation
private

Whether to use pointing association.

Definition at line 281 of file EventSlicingTool.h.

◆ m_useProximityAssociation

bool lar_content::EventSlicingTool::m_useProximityAssociation
private

Whether to use proximity association.

Definition at line 289 of file EventSlicingTool.h.

◆ m_useShowerConeAssociation

bool lar_content::EventSlicingTool::m_useShowerConeAssociation
private

Whether to use shower cone association.

Definition at line 292 of file EventSlicingTool.h.

◆ m_vertexAngularAllowance

float lar_content::EventSlicingTool::m_vertexAngularAllowance
private

Pointing association check: pointing angular allowance in degrees.

Definition at line 285 of file EventSlicingTool.h.


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