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

ParticleRecoveryAlgorithm class. More...

#include "ParticleRecoveryAlgorithm.h"

Inheritance diagram for lar_content::ParticleRecoveryAlgorithm:
Collaboration diagram for lar_content::ParticleRecoveryAlgorithm:

Classes

class  SimpleOverlapTensor
 SimpleOverlapTensor class. More...
 

Public Member Functions

 ParticleRecoveryAlgorithm ()
 Default constructor.
 
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 Member Functions

pandora::StatusCode Run ()
 Run the algorithm.
 
void GetInputClusters (pandora::ClusterList &inputClusterListU, pandora::ClusterList &inputClusterListV, pandora::ClusterList &inputClusterListW) const
 Get the input cluster lists for processing in this algorithm.
 
void SelectInputClusters (const pandora::ClusterList &inputClusterList, pandora::ClusterList &selectedClusterList) const
 Select a subset of input clusters for processing in this algorithm.
 
void StandardClusterSelection (const pandora::ClusterList &inputClusterList, pandora::ClusterList &selectedClusterList) const
 Select a subset of input clusters for processing in this algorithm.
 
void VertexClusterSelection (const pandora::ClusterList &inputClusterList, pandora::ClusterList &selectedClusterList) const
 Select a subset of input clusters nodally associated with the vertices of existing particles.
 
void FindOverlaps (const pandora::ClusterList &clusterList1, const pandora::ClusterList &clusterList2, SimpleOverlapTensor &overlapTensor) const
 Find cluster overlaps and record these in the overlap tensor.
 
bool IsOverlap (const pandora::Cluster *const pCluster1, const pandora::Cluster *const pCluster2) const
 Whether two clusters overlap convincingly in x.
 
void CalculateEffectiveOverlapFractions (const pandora::Cluster *const pCluster1, const float xMin1, const float xMax1, const pandora::Cluster *const pCluster2, const float xMin2, const float xMax2, float &xOverlapFraction1, float &xOverlapFraction2) const
 Calculate effective overlap fractions taking into account gaps.
 
void CalculateEffectiveSpan (const pandora::Cluster *const pCluster, const float xMin, const float xMax, float &xMinEff, float &xMaxEff) const
 Calculate effective span for a given clsuter taking gaps into account.
 
void ExamineTensor (const SimpleOverlapTensor &overlapTensor) const
 Identify unambiguous cluster overlaps and resolve ambiguous overlaps, creating new track particles.
 
bool CheckConsistency (const pandora::Cluster *const pClusterU, const pandora::Cluster *const pClusterV, const pandora::Cluster *const pClusterW) const
 Whether a trio of clusters are consistent with representing projections of the same 3d trajectory.
 
void CreateTrackParticle (const pandora::ClusterList &clusterList) const
 Create and save a track particle containing the provided clusters.
 
pandora::StatusCode ReadSettings (const pandora::TiXmlHandle xmlHandle)
 Read the algorithm settings.
 

Private Attributes

pandora::StringVector m_inputClusterListNames
 The list of cluster list names.
 
std::string m_outputPfoListName
 The output pfo list name.
 
bool m_checkGaps
 Whether to check for gaps in the calculation of the overlap.
 
unsigned int m_minClusterCaloHits
 The min number of hits in base cluster selection method.
 
float m_minClusterLengthSquared
 The min length (squared) in base cluster selection method.
 
float m_minClusterXSpan
 The min x span required in order to consider a cluster.
 
bool m_vertexClusterMode
 Whether to demand clusters are associated with vertices of existing particles.
 
float m_minVertexLongitudinalDistance
 Vertex association check: min longitudinal distance cut.
 
float m_maxVertexTransverseDistance
 Vertex association check: max transverse distance cut.
 
float m_minXOverlapFraction
 The min x overlap fraction required in order to id overlapping clusters.
 
float m_minXOverlapFractionGaps
 The min x overlap fraction when there are gaps involved.
 
float m_sampleStepSize
 The sampling step size used in association checks, units cm.
 
unsigned int m_slidingFitHalfWindow
 The half window for the fit sliding result constructor.
 
float m_pseudoChi2Cut
 The selection cut on the matched chi2.
 

Detailed Description

ParticleRecoveryAlgorithm class.

Definition at line 21 of file ParticleRecoveryAlgorithm.h.

Constructor & Destructor Documentation

◆ ParticleRecoveryAlgorithm()

lar_content::ParticleRecoveryAlgorithm::ParticleRecoveryAlgorithm ( )

Default constructor.

Definition at line 26 of file ParticleRecoveryAlgorithm.cc.

Member Function Documentation

◆ CalculateEffectiveOverlapFractions()

void lar_content::ParticleRecoveryAlgorithm::CalculateEffectiveOverlapFractions ( const pandora::Cluster *const  pCluster1,
const float  xMin1,
const float  xMax1,
const pandora::Cluster *const  pCluster2,
const float  xMin2,
const float  xMax2,
float &  xOverlapFraction1,
float &  xOverlapFraction2 
) const
private

Calculate effective overlap fractions taking into account gaps.

Parameters
pCluster1address of the first cluster
xMin1min x value of the first cluster
xMax1max x value of the first cluster
pCluster2address of the second cluster
xMin2min x value of the second cluster
xMax2max x value of the second cluster
xOverlapFraction1to receive the effective overlap fraction for the first cluster
xOverlapFraction2to receive the effective overlap fraction for the second cluster

Definition at line 234 of file ParticleRecoveryAlgorithm.cc.

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

◆ CalculateEffectiveSpan()

void lar_content::ParticleRecoveryAlgorithm::CalculateEffectiveSpan ( const pandora::Cluster *const  pCluster,
const float  xMin,
const float  xMax,
float &  xMinEff,
float &  xMaxEff 
) const
private

Calculate effective span for a given clsuter taking gaps into account.

Parameters
pClusteraddress of the cluster
xMinthe min x value above which checks for gaps will be performed
xMaxthe max x value below which checks for gaps will be performed
xMinEffto receive the effective min x value for the cluster, including adjacent gaps
xMaxEffto receive the effective max x value for the cluster, including adjacent gaps

Definition at line 259 of file ParticleRecoveryAlgorithm.cc.

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

◆ CheckConsistency()

bool lar_content::ParticleRecoveryAlgorithm::CheckConsistency ( const pandora::Cluster *const  pClusterU,
const pandora::Cluster *const  pClusterV,
const pandora::Cluster *const  pClusterW 
) const
private

Whether a trio of clusters are consistent with representing projections of the same 3d trajectory.

Parameters
pClusterUthe address of cluster u
pClusterVthe address of cluster v
pClusterWthe address of cluster w
Returns
boolean

Definition at line 341 of file ParticleRecoveryAlgorithm.cc.

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

◆ CreateTrackParticle()

void lar_content::ParticleRecoveryAlgorithm::CreateTrackParticle ( const pandora::ClusterList clusterList) const
private

Create and save a track particle containing the provided clusters.

Parameters
clusterListthe cluster list

Definition at line 380 of file ParticleRecoveryAlgorithm.cc.

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

◆ ExamineTensor()

void lar_content::ParticleRecoveryAlgorithm::ExamineTensor ( const SimpleOverlapTensor overlapTensor) const
private

Identify unambiguous cluster overlaps and resolve ambiguous overlaps, creating new track particles.

Parameters
overlapTensorthe overlap tensor

Definition at line 303 of file ParticleRecoveryAlgorithm.cc.

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

◆ FindOverlaps()

void lar_content::ParticleRecoveryAlgorithm::FindOverlaps ( const pandora::ClusterList clusterList1,
const pandora::ClusterList clusterList2,
SimpleOverlapTensor overlapTensor 
) const
private

Find cluster overlaps and record these in the overlap tensor.

Parameters
clusterList1the first cluster list
clusterList2the second cluster list
overlapTensorthe overlap tensor

Definition at line 188 of file ParticleRecoveryAlgorithm.cc.

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

◆ GetInputClusters()

void lar_content::ParticleRecoveryAlgorithm::GetInputClusters ( pandora::ClusterList inputClusterListU,
pandora::ClusterList inputClusterListV,
pandora::ClusterList inputClusterListW 
) const
private

Get the input cluster lists for processing in this algorithm.

Parameters
inputClusterListUto receive the list of clusters in the u view
inputClusterListUto receive the list of clusters in the v view
inputClusterListUto receive the list of clusters in the w view

Definition at line 65 of file ParticleRecoveryAlgorithm.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.

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

◆ 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:

◆ IsOverlap()

bool lar_content::ParticleRecoveryAlgorithm::IsOverlap ( const pandora::Cluster *const  pCluster1,
const pandora::Cluster *const  pCluster2 
) const
private

Whether two clusters overlap convincingly in x.

Parameters
pCluster1address of the first cluster
pCluster2address of the second cluster

Definition at line 202 of file ParticleRecoveryAlgorithm.cc.

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

◆ ReadSettings()

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

Read the algorithm settings.

Parameters
xmlHandlethe relevant xml handle

Implements pandora::Process.

Definition at line 481 of file ParticleRecoveryAlgorithm.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:

◆ Run()

StatusCode lar_content::ParticleRecoveryAlgorithm::Run ( )
privatevirtual

Run the algorithm.

Implements pandora::Algorithm.

Definition at line 44 of file ParticleRecoveryAlgorithm.cc.

Here is the call graph for this function:

◆ SelectInputClusters()

void lar_content::ParticleRecoveryAlgorithm::SelectInputClusters ( const pandora::ClusterList inputClusterList,
pandora::ClusterList selectedClusterList 
) const
private

Select a subset of input clusters for processing in this algorithm.

Parameters
inputClusterListthe input cluster list
selectedClusterListto receive the selected cluster list

Definition at line 96 of file ParticleRecoveryAlgorithm.cc.

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

◆ StandardClusterSelection()

void lar_content::ParticleRecoveryAlgorithm::StandardClusterSelection ( const pandora::ClusterList inputClusterList,
pandora::ClusterList selectedClusterList 
) const
private

Select a subset of input clusters for processing in this algorithm.

Parameters
inputClusterListthe input cluster list
selectedClusterListto receive the selected cluster list

Definition at line 112 of file ParticleRecoveryAlgorithm.cc.

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

◆ VertexClusterSelection()

void lar_content::ParticleRecoveryAlgorithm::VertexClusterSelection ( const pandora::ClusterList inputClusterList,
pandora::ClusterList selectedClusterList 
) const
private

Select a subset of input clusters nodally associated with the vertices of existing particles.

Parameters
inputClusterListthe input cluster list
selectedClusterListto receive the selected cluster list

Definition at line 139 of file ParticleRecoveryAlgorithm.cc.

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

Member Data Documentation

◆ m_checkGaps

bool lar_content::ParticleRecoveryAlgorithm::m_checkGaps
private

Whether to check for gaps in the calculation of the overlap.

Definition at line 180 of file ParticleRecoveryAlgorithm.h.

◆ m_inputClusterListNames

pandora::StringVector lar_content::ParticleRecoveryAlgorithm::m_inputClusterListNames
private

The list of cluster list names.

Definition at line 177 of file ParticleRecoveryAlgorithm.h.

◆ m_instanceName

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

The process instance name.

Definition at line 89 of file Process.h.

◆ m_maxVertexTransverseDistance

float lar_content::ParticleRecoveryAlgorithm::m_maxVertexTransverseDistance
private

Vertex association check: max transverse distance cut.

Definition at line 188 of file ParticleRecoveryAlgorithm.h.

◆ m_minClusterCaloHits

unsigned int lar_content::ParticleRecoveryAlgorithm::m_minClusterCaloHits
private

The min number of hits in base cluster selection method.

Definition at line 182 of file ParticleRecoveryAlgorithm.h.

◆ m_minClusterLengthSquared

float lar_content::ParticleRecoveryAlgorithm::m_minClusterLengthSquared
private

The min length (squared) in base cluster selection method.

Definition at line 183 of file ParticleRecoveryAlgorithm.h.

◆ m_minClusterXSpan

float lar_content::ParticleRecoveryAlgorithm::m_minClusterXSpan
private

The min x span required in order to consider a cluster.

Definition at line 184 of file ParticleRecoveryAlgorithm.h.

◆ m_minVertexLongitudinalDistance

float lar_content::ParticleRecoveryAlgorithm::m_minVertexLongitudinalDistance
private

Vertex association check: min longitudinal distance cut.

Definition at line 187 of file ParticleRecoveryAlgorithm.h.

◆ m_minXOverlapFraction

float lar_content::ParticleRecoveryAlgorithm::m_minXOverlapFraction
private

The min x overlap fraction required in order to id overlapping clusters.

Definition at line 190 of file ParticleRecoveryAlgorithm.h.

◆ m_minXOverlapFractionGaps

float lar_content::ParticleRecoveryAlgorithm::m_minXOverlapFractionGaps
private

The min x overlap fraction when there are gaps involved.

Definition at line 191 of file ParticleRecoveryAlgorithm.h.

◆ m_outputPfoListName

std::string lar_content::ParticleRecoveryAlgorithm::m_outputPfoListName
private

The output pfo list name.

Definition at line 178 of file ParticleRecoveryAlgorithm.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_pseudoChi2Cut

float lar_content::ParticleRecoveryAlgorithm::m_pseudoChi2Cut
private

The selection cut on the matched chi2.

Definition at line 194 of file ParticleRecoveryAlgorithm.h.

◆ m_sampleStepSize

float lar_content::ParticleRecoveryAlgorithm::m_sampleStepSize
private

The sampling step size used in association checks, units cm.

Definition at line 192 of file ParticleRecoveryAlgorithm.h.

◆ m_slidingFitHalfWindow

unsigned int lar_content::ParticleRecoveryAlgorithm::m_slidingFitHalfWindow
private

The half window for the fit sliding result constructor.

Definition at line 193 of file ParticleRecoveryAlgorithm.h.

◆ m_type

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

The process type.

Definition at line 88 of file Process.h.

◆ m_vertexClusterMode

bool lar_content::ParticleRecoveryAlgorithm::m_vertexClusterMode
private

Whether to demand clusters are associated with vertices of existing particles.

Definition at line 186 of file ParticleRecoveryAlgorithm.h.


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