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

VertexBasedPfoRecoveryAlgorithm class. More...

#include "VertexBasedPfoRecoveryAlgorithm.h"

Inheritance diagram for lar_content::VertexBasedPfoRecoveryAlgorithm:
Collaboration diagram for lar_content::VertexBasedPfoRecoveryAlgorithm:

Classes

class  Particle
 Particle class. More...
 

Public Member Functions

 VertexBasedPfoRecoveryAlgorithm ()
 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 Types

typedef std::vector< ParticleParticleList
 

Private Member Functions

pandora::StatusCode Run ()
 Run the algorithm.
 
pandora::StatusCode GetAvailableClusters (const pandora::StringVector inputClusterListName, pandora::ClusterVector &clusterVector) const
 Get a vector of available clusters.
 
void BuildSlidingFitResultMap (const pandora::ClusterVector &clusterVector, TwoDSlidingFitResultMap &slidingFitResultMap) const
 Build the map of sliding fit results.
 
void SelectVertexClusters (const pandora::Vertex *const pVertex, const TwoDSlidingFitResultMap &slidingFitResultMap, const pandora::ClusterVector &inputClusters, pandora::ClusterVector &outputClusters) const
 Select clusters in proximity to reconstructed vertex.
 
void MatchThreeViews (const pandora::Vertex *const pVertex, const TwoDSlidingFitResultMap &slidingFitResultMap, const pandora::ClusterVector &selectedClusters, pandora::ClusterSet &vetoList, ParticleList &particleList) const
 Match clusters from three views.
 
void MatchTwoViews (const pandora::Vertex *const pVertex, const TwoDSlidingFitResultMap &slidingFitResultMap, const pandora::ClusterVector &selectedClusters, pandora::ClusterSet &vetoList, ParticleList &particleList) const
 Match clusters from two views.
 
void GetBestChi2 (const pandora::Vertex *const pVertex, const TwoDSlidingFitResultMap &slidingFitResultMap, const pandora::ClusterVector &clusters1, const pandora::ClusterVector &clusters2, const pandora::ClusterVector &clusters3, const pandora::Cluster *&pBestCluster1, const pandora::Cluster *&pBestCluster2, const pandora::Cluster *&pBestCluster3, float &chi2) const
 Get best-matched triplet of clusters from a set of input cluster vectors.
 
void GetBestChi2 (const pandora::Vertex *const pVertex, const TwoDSlidingFitResultMap &slidingFitResultMap, const pandora::ClusterVector &clusters1, const pandora::ClusterVector &clusters2, const pandora::Cluster *&pBestCluster1, const pandora::Cluster *&pBestCluster2, float &chi2) const
 Get best-matched pair of clusters from a set of input cluster vectors.
 
float GetChi2 (const pandora::Vertex *const pVertex, const LArPointingCluster &pointingCluster1, const LArPointingCluster &pointingCluster2) const
 Merge two pointing clusters and return chi-squared metric giving consistency of matching.
 
float GetChi2 (const pandora::Vertex *const pVertex, const LArPointingCluster &pointingCluster1, const LArPointingCluster &pointingCluster2, const LArPointingCluster &pointingCluster3) const
 Merge three clusters between views and return chi-squared metric giving consistency of matching.
 
void SelectAvailableClusters (const pandora::ClusterSet &vetoList, const pandora::ClusterVector &inputVector, pandora::ClusterVector &outputVector) const
 Select cluster which haven't been vetoed.
 
void SelectClusters (const pandora::HitType hitType, const pandora::ClusterVector &inputVector, pandora::ClusterVector &outputVector) const
 Select clusters of a specified hit type.
 
const LArPointingCluster::VertexGetInnerVertex (const pandora::CartesianVector &vertex, const LArPointingCluster &cluster) const
 Find nearest end of pointing cluster to a specified position vector.
 
const LArPointingCluster::VertexGetOuterVertex (const pandora::CartesianVector &vertex, const LArPointingCluster &cluster) const
 Find furthest end of pointing cluster from a specified position vector.
 
void BuildParticles (const ParticleList &particleList)
 Build particle flow objects from matched clusters.
 
pandora::StatusCode ReadSettings (const pandora::TiXmlHandle xmlHandle)
 Read the algorithm settings.
 

Private Attributes

pandora::StringVector m_inputClusterListNames
 The list of input cluster list names.
 
std::string m_outputPfoListName
 The name of the output pfo list.
 
unsigned int m_slidingFitHalfWindow
 
float m_maxLongitudinalDisplacement
 
float m_maxTransverseDisplacement
 
float m_twoViewChi2Cut
 
float m_threeViewChi2Cut
 

Detailed Description

Member Typedef Documentation

◆ ParticleList

Constructor & Destructor Documentation

◆ VertexBasedPfoRecoveryAlgorithm()

lar_content::VertexBasedPfoRecoveryAlgorithm::VertexBasedPfoRecoveryAlgorithm ( )

Default constructor.

Definition at line 22 of file VertexBasedPfoRecoveryAlgorithm.cc.

Member Function Documentation

◆ BuildParticles()

void lar_content::VertexBasedPfoRecoveryAlgorithm::BuildParticles ( const ParticleList particleList)
private

Build particle flow objects from matched clusters.

Parameters
particleListthe input list of matched clusters

Definition at line 469 of file VertexBasedPfoRecoveryAlgorithm.cc.

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

◆ BuildSlidingFitResultMap()

void lar_content::VertexBasedPfoRecoveryAlgorithm::BuildSlidingFitResultMap ( const pandora::ClusterVector clusterVector,
TwoDSlidingFitResultMap slidingFitResultMap 
) const
private

Build the map of sliding fit results.

Parameters
clusterVectorthe vector of selected clusters
halfWindowLayersthe half-window to use for the sliding fits
slidingFitResultMapthe sliding fit result map

Definition at line 112 of file VertexBasedPfoRecoveryAlgorithm.cc.

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

◆ GetAvailableClusters()

StatusCode lar_content::VertexBasedPfoRecoveryAlgorithm::GetAvailableClusters ( const pandora::StringVector  inputClusterListName,
pandora::ClusterVector clusterVector 
) const
private

Get a vector of available clusters.

Parameters
inputClusterListNamethe input vector of the cluster list names
clusterVectorthe output vector of available clusters

Definition at line 75 of file VertexBasedPfoRecoveryAlgorithm.cc.

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

◆ GetBestChi2() [1/2]

void lar_content::VertexBasedPfoRecoveryAlgorithm::GetBestChi2 ( const pandora::Vertex *const  pVertex,
const TwoDSlidingFitResultMap slidingFitResultMap,
const pandora::ClusterVector clusters1,
const pandora::ClusterVector clusters2,
const pandora::Cluster *&  pBestCluster1,
const pandora::Cluster *&  pBestCluster2,
float &  chi2 
) const
private

Get best-matched pair of clusters from a set of input cluster vectors.

Parameters
pVertexthe input vertex
slidingFitResultMapthe mapping between clusters and sliding fit results
clusters1the clusters in the first view
clusters2the clusters in the second view
pBestCluster1the best-matched cluster from the first view
pBestCluster2the best-matched cluster from the second view
chi2the chi-squared metric from the best match

Definition at line 324 of file VertexBasedPfoRecoveryAlgorithm.cc.

Here is the call graph for this function:

◆ GetBestChi2() [2/2]

void lar_content::VertexBasedPfoRecoveryAlgorithm::GetBestChi2 ( const pandora::Vertex *const  pVertex,
const TwoDSlidingFitResultMap slidingFitResultMap,
const pandora::ClusterVector clusters1,
const pandora::ClusterVector clusters2,
const pandora::ClusterVector clusters3,
const pandora::Cluster *&  pBestCluster1,
const pandora::Cluster *&  pBestCluster2,
const pandora::Cluster *&  pBestCluster3,
float &  chi2 
) const
private

Get best-matched triplet of clusters from a set of input cluster vectors.

Parameters
pVertexthe input vertex
slidingFitResultMapthe mapping between clusters and sliding fit results
clusters1the clusters in the first view
clusters2the clusters in the second view
clusters3the clusters in the third view
pBestCluster1the best-matched cluster from the first view
pBestCluster2the best-matched cluster from the second view
pBestCluster3the best-matched cluster from the third view
chi2the chi-squared metric from the best match

Definition at line 264 of file VertexBasedPfoRecoveryAlgorithm.cc.

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

◆ GetChi2() [1/2]

float lar_content::VertexBasedPfoRecoveryAlgorithm::GetChi2 ( const pandora::Vertex *const  pVertex,
const LArPointingCluster pointingCluster1,
const LArPointingCluster pointingCluster2 
) const
private

Merge two pointing clusters and return chi-squared metric giving consistency of matching.

Parameters
pVertexthe input vertex
pointingCluster1the first pointing cluster
pointingCluster2the second pointing cluster

Definition at line 369 of file VertexBasedPfoRecoveryAlgorithm.cc.

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

◆ GetChi2() [2/2]

float lar_content::VertexBasedPfoRecoveryAlgorithm::GetChi2 ( const pandora::Vertex *const  pVertex,
const LArPointingCluster pointingCluster1,
const LArPointingCluster pointingCluster2,
const LArPointingCluster pointingCluster3 
) const
private

Merge three clusters between views and return chi-squared metric giving consistency of matching.

Parameters
pVertexthe input vertex
pointingCluster1the first pointing cluster
pointingCluster2the second pointing cluster
pointingCluster3the third pointing cluster

Definition at line 394 of file VertexBasedPfoRecoveryAlgorithm.cc.

Here is the call graph for this function:

◆ GetInnerVertex()

const LArPointingCluster::Vertex & lar_content::VertexBasedPfoRecoveryAlgorithm::GetInnerVertex ( const pandora::CartesianVector vertex,
const LArPointingCluster cluster 
) const
private

Find nearest end of pointing cluster to a specified position vector.

Parameters
vertexthe input position
clusterthe input cluster

Definition at line 444 of file VertexBasedPfoRecoveryAlgorithm.cc.

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.

◆ GetOuterVertex()

const LArPointingCluster::Vertex & lar_content::VertexBasedPfoRecoveryAlgorithm::GetOuterVertex ( const pandora::CartesianVector vertex,
const LArPointingCluster cluster 
) const
private

Find furthest end of pointing cluster from a specified position vector.

Parameters
vertexthe input position
clusterthe input pointing cluster

Definition at line 457 of file VertexBasedPfoRecoveryAlgorithm.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.

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

◆ MatchThreeViews()

void lar_content::VertexBasedPfoRecoveryAlgorithm::MatchThreeViews ( const pandora::Vertex *const  pVertex,
const TwoDSlidingFitResultMap slidingFitResultMap,
const pandora::ClusterVector selectedClusters,
pandora::ClusterSet vetoList,
ParticleList particleList 
) const
private

Match clusters from three views.

Parameters
pVertexthe input vertex
slidingFitResultMapthe mapping between clusters and sliding fit results
selectedClustersthe input vertex clusters
vetoListthe list of matched clusters
particleListthe output list of matched clusters

Definition at line 184 of file VertexBasedPfoRecoveryAlgorithm.cc.

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

◆ MatchTwoViews()

void lar_content::VertexBasedPfoRecoveryAlgorithm::MatchTwoViews ( const pandora::Vertex *const  pVertex,
const TwoDSlidingFitResultMap slidingFitResultMap,
const pandora::ClusterVector selectedClusters,
pandora::ClusterSet vetoList,
ParticleList particleList 
) const
private

Match clusters from two views.

Parameters
pVertexthe input vertex
slidingFitResultMapthe mapping between clusters and sliding fit results
selectedClustersthe input vertex clusters
vetoListthe list of matched clusters
particleListthe output list of matched clusters

Definition at line 226 of file VertexBasedPfoRecoveryAlgorithm.cc.

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

◆ ReadSettings()

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

Read the algorithm settings.

Parameters
xmlHandlethe relevant xml handle

Implements pandora::Process.

Definition at line 538 of file VertexBasedPfoRecoveryAlgorithm.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::VertexBasedPfoRecoveryAlgorithm::Run ( )
privatevirtual

Run the algorithm.

Implements pandora::Algorithm.

Definition at line 33 of file VertexBasedPfoRecoveryAlgorithm.cc.

Here is the call graph for this function:

◆ SelectAvailableClusters()

void lar_content::VertexBasedPfoRecoveryAlgorithm::SelectAvailableClusters ( const pandora::ClusterSet vetoList,
const pandora::ClusterVector inputVector,
pandora::ClusterVector outputVector 
) const
private

Select cluster which haven't been vetoed.

Parameters
vetoListthe list of vetoed clusters
inputVectorthe input vector of clusters
outputVectorthe output vector of clusters

Definition at line 422 of file VertexBasedPfoRecoveryAlgorithm.cc.

Here is the caller graph for this function:

◆ SelectClusters()

void lar_content::VertexBasedPfoRecoveryAlgorithm::SelectClusters ( const pandora::HitType  hitType,
const pandora::ClusterVector inputVector,
pandora::ClusterVector outputVector 
) const
private

Select clusters of a specified hit type.

Parameters
hitTypethe specified hit type
inputVectorthe input vector of clusters
outputVectorthe output vector of clusters

Definition at line 433 of file VertexBasedPfoRecoveryAlgorithm.cc.

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

◆ SelectVertexClusters()

void lar_content::VertexBasedPfoRecoveryAlgorithm::SelectVertexClusters ( const pandora::Vertex *const  pVertex,
const TwoDSlidingFitResultMap slidingFitResultMap,
const pandora::ClusterVector inputClusters,
pandora::ClusterVector outputClusters 
) const
private

Select clusters in proximity to reconstructed vertex.

Parameters
pVertexthe input vertex
slidingFitResultMapthe mapping between clusters and sliding fit results
inputClustersthe input vector of clusters
outputClustersthe output vector of clusters

Definition at line 142 of file VertexBasedPfoRecoveryAlgorithm.cc.

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

Member Data Documentation

◆ m_inputClusterListNames

pandora::StringVector lar_content::VertexBasedPfoRecoveryAlgorithm::m_inputClusterListNames
private

The list of input cluster list names.

Definition at line 201 of file VertexBasedPfoRecoveryAlgorithm.h.

◆ m_instanceName

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

The process instance name.

Definition at line 89 of file Process.h.

◆ m_maxLongitudinalDisplacement

float lar_content::VertexBasedPfoRecoveryAlgorithm::m_maxLongitudinalDisplacement
private

Definition at line 205 of file VertexBasedPfoRecoveryAlgorithm.h.

◆ m_maxTransverseDisplacement

float lar_content::VertexBasedPfoRecoveryAlgorithm::m_maxTransverseDisplacement
private

Definition at line 206 of file VertexBasedPfoRecoveryAlgorithm.h.

◆ m_outputPfoListName

std::string lar_content::VertexBasedPfoRecoveryAlgorithm::m_outputPfoListName
private

The name of the output pfo list.

Definition at line 202 of file VertexBasedPfoRecoveryAlgorithm.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_slidingFitHalfWindow

unsigned int lar_content::VertexBasedPfoRecoveryAlgorithm::m_slidingFitHalfWindow
private

Definition at line 204 of file VertexBasedPfoRecoveryAlgorithm.h.

◆ m_threeViewChi2Cut

float lar_content::VertexBasedPfoRecoveryAlgorithm::m_threeViewChi2Cut
private

Definition at line 208 of file VertexBasedPfoRecoveryAlgorithm.h.

◆ m_twoViewChi2Cut

float lar_content::VertexBasedPfoRecoveryAlgorithm::m_twoViewChi2Cut
private

Definition at line 207 of file VertexBasedPfoRecoveryAlgorithm.h.

◆ m_type

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

The process type.

Definition at line 88 of file Process.h.


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