Pandora
Pandora source code navigator
Loading...
Searching...
No Matches
lar_content::OverlapTensor< T > Class Template Reference

OverlapTensor class. More...

#include "LArOverlapTensor.h"

Classes

class  Element
 Element class. More...
 

Public Types

typedef T OverlapResult
 
typedef std::vector< ElementElementList
 
typedef std::unordered_map< const pandora::Cluster *, pandora::ClusterListClusterNavigationMap
 
typedef std::unordered_map< const pandora::Cluster *, OverlapResultOverlapList
 
typedef std::unordered_map< const pandora::Cluster *, OverlapListOverlapMatrix
 
typedef std::unordered_map< const pandora::Cluster *, OverlapMatrixTheTensor
 
typedef TheTensor::const_iterator const_iterator
 

Public Member Functions

void GetUnambiguousElements (const bool ignoreUnavailable, ElementList &elementList) const
 Get unambiguous elements.
 
bool DefaultAmbiguityFunction (const pandora::ClusterList &clusterListU, const pandora::ClusterList &clusterListV, const pandora::ClusterList &clusterListW, const pandora::Cluster *&pClusterU, const pandora::Cluster *&pClusterV, const pandora::Cluster *&pClusterW) const
 Default ambiguity function, checking that only one U, V and W cluster is found.
 
void GetNConnections (const pandora::Cluster *const pCluster, const bool ignoreUnavailable, unsigned int &nU, unsigned int &nV, unsigned int &nW) const
 Get the number of connections for a specified cluster.
 
void GetConnectedElements (const pandora::Cluster *const pCluster, const bool ignoreUnavailable, ElementList &elementList) const
 Get a list of elements connected to a specified cluster.
 
void GetConnectedElements (const pandora::Cluster *const pCluster, const bool ignoreUnavailable, ElementList &elementList, unsigned int &nU, unsigned int &nV, unsigned int &nW) const
 Get a list of elements connected to a specified cluster.
 
const_iterator begin () const
 Returns an iterator referring to the first element in the overlap tensor.
 
const_iterator end () const
 Returns an iterator referring to the past-the-end element in the overlap tensor.
 
void GetSortedKeyClusters (pandora::ClusterVector &sortedKeyClusters) const
 Get a sorted vector of key clusters (U clusters with current implementation)
 
const OverlapResultGetOverlapResult (const pandora::Cluster *const pClusterU, const pandora::Cluster *const pClusterV, const pandora::Cluster *const pClusterW) const
 Get the overlap result for a specified trio of clusters.
 
const OverlapListGetOverlapList (const pandora::Cluster *const pClusterU, const pandora::Cluster *const pClusterV) const
 Get the overlap list for a specified pair of clusters.
 
const OverlapMatrixGetOverlapMatrix (const pandora::Cluster *const pClusterU) const
 Get the cluster overlap matrix for a specified cluster.
 
const ClusterNavigationMapGetClusterNavigationMapUV () const
 Get the cluster navigation map U->V.
 
const ClusterNavigationMapGetClusterNavigationMapVW () const
 Get the cluster navigation map V->W.
 
const ClusterNavigationMapGetClusterNavigationMapWU () const
 Get the cluster navigation map W->U.
 
void SetOverlapResult (const pandora::Cluster *const pClusterU, const pandora::Cluster *const pClusterV, const pandora::Cluster *const pClusterW, const OverlapResult &overlapResult)
 Set overlap result.
 
void ReplaceOverlapResult (const pandora::Cluster *const pClusterU, const pandora::Cluster *const pClusterV, const pandora::Cluster *const pClusterW, const OverlapResult &overlapResult)
 SetReplace an existing overlap result.
 
void RemoveCluster (const pandora::Cluster *const pCluster)
 Remove entries from tensor corresponding to specified cluster.
 
void Clear ()
 Clear overlap tensor.
 

Private Member Functions

void GetConnectedElements (const pandora::Cluster *const pCluster, const bool ignoreUnavailable, ElementList &elementList, pandora::ClusterList &clusterListU, pandora::ClusterList &clusterListV, pandora::ClusterList &clusterListW) const
 Get elements connected to a specified cluster.
 
void ExploreConnections (const pandora::Cluster *const pCluster, const bool ignoreUnavailable, pandora::ClusterList &clusterListU, pandora::ClusterList &clusterListV, pandora::ClusterList &clusterListW) const
 Explore connections associated with a given cluster.
 

Private Attributes

TheTensor m_overlapTensor
 The overlap tensor.
 
ClusterNavigationMap m_clusterNavigationMapUV
 The cluster navigation map U->V.
 
ClusterNavigationMap m_clusterNavigationMapVW
 The cluster navigation map V->W.
 
ClusterNavigationMap m_clusterNavigationMapWU
 The cluster navigation map W->U.
 

Detailed Description

template<typename T>
class lar_content::OverlapTensor< T >

OverlapTensor class.

Definition at line 23 of file LArOverlapTensor.h.

Member Typedef Documentation

◆ ClusterNavigationMap

template<typename T >
typedef std::unordered_map<const pandora::Cluster *, pandora::ClusterList> lar_content::OverlapTensor< T >::ClusterNavigationMap

Definition at line 155 of file LArOverlapTensor.h.

◆ const_iterator

template<typename T >
typedef TheTensor::const_iterator lar_content::OverlapTensor< T >::const_iterator

Definition at line 160 of file LArOverlapTensor.h.

◆ ElementList

template<typename T >
typedef std::vector<Element> lar_content::OverlapTensor< T >::ElementList

Definition at line 96 of file LArOverlapTensor.h.

◆ OverlapList

template<typename T >
typedef std::unordered_map<const pandora::Cluster *, OverlapResult> lar_content::OverlapTensor< T >::OverlapList

Definition at line 156 of file LArOverlapTensor.h.

◆ OverlapMatrix

template<typename T >
typedef std::unordered_map<const pandora::Cluster *, OverlapList> lar_content::OverlapTensor< T >::OverlapMatrix

Definition at line 157 of file LArOverlapTensor.h.

◆ OverlapResult

template<typename T >
typedef T lar_content::OverlapTensor< T >::OverlapResult

Definition at line 26 of file LArOverlapTensor.h.

◆ TheTensor

template<typename T >
typedef std::unordered_map<const pandora::Cluster *, OverlapMatrix> lar_content::OverlapTensor< T >::TheTensor

Definition at line 158 of file LArOverlapTensor.h.

Member Function Documentation

◆ begin()

template<typename T >
OverlapTensor< T >::const_iterator lar_content::OverlapTensor< T >::begin ( ) const
inline

Returns an iterator referring to the first element in the overlap tensor.

Definition at line 317 of file LArOverlapTensor.h.

Here is the caller graph for this function:

◆ Clear()

template<typename T >
void lar_content::OverlapTensor< T >::Clear ( )
inline

Clear overlap tensor.

Definition at line 400 of file LArOverlapTensor.h.

◆ DefaultAmbiguityFunction()

template<typename T >
bool lar_content::OverlapTensor< T >::DefaultAmbiguityFunction ( const pandora::ClusterList clusterListU,
const pandora::ClusterList clusterListV,
const pandora::ClusterList clusterListW,
const pandora::Cluster *&  pClusterU,
const pandora::Cluster *&  pClusterV,
const pandora::Cluster *&  pClusterW 
) const

Default ambiguity function, checking that only one U, V and W cluster is found.

Parameters
clusterListUcluster list U
clusterListVcluster list V
clusterListWcluster list W
pClusterUto receive the address of the unambiguous U cluster
pClusterVto receive the address of the unambiguous V cluster
pClusterWto receive the address of the unambiguous W cluster
Returns
boolean

Definition at line 79 of file LArOverlapTensor.cc.

Here is the caller graph for this function:

◆ end()

template<typename T >
OverlapTensor< T >::const_iterator lar_content::OverlapTensor< T >::end ( ) const
inline

Returns an iterator referring to the past-the-end element in the overlap tensor.

Definition at line 325 of file LArOverlapTensor.h.

Here is the caller graph for this function:

◆ ExploreConnections()

template<typename T >
void lar_content::OverlapTensor< T >::ExploreConnections ( const pandora::Cluster *const  pCluster,
const bool  ignoreUnavailable,
pandora::ClusterList clusterListU,
pandora::ClusterList clusterListV,
pandora::ClusterList clusterListW 
) const
private

Explore connections associated with a given cluster.

Parameters
pClusteraddress of the cluster
clusterListUconnected u clusters
clusterListVconnected v clusters
clusterListWconnected w clusters

Definition at line 295 of file LArOverlapTensor.cc.

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

◆ GetClusterNavigationMapUV()

template<typename T >
const OverlapTensor< T >::ClusterNavigationMap & lar_content::OverlapTensor< T >::GetClusterNavigationMapUV ( ) const
inline

Get the cluster navigation map U->V.

Returns
the cluster navigation map U->V

Definition at line 376 of file LArOverlapTensor.h.

◆ GetClusterNavigationMapVW()

template<typename T >
const OverlapTensor< T >::ClusterNavigationMap & lar_content::OverlapTensor< T >::GetClusterNavigationMapVW ( ) const
inline

Get the cluster navigation map V->W.

Returns
the cluster navigation map V->W

Definition at line 384 of file LArOverlapTensor.h.

◆ GetClusterNavigationMapWU()

template<typename T >
const OverlapTensor< T >::ClusterNavigationMap & lar_content::OverlapTensor< T >::GetClusterNavigationMapWU ( ) const
inline

Get the cluster navigation map W->U.

Returns
the cluster navigation map W->U

Definition at line 392 of file LArOverlapTensor.h.

◆ GetConnectedElements() [1/3]

template<typename T >
void lar_content::OverlapTensor< T >::GetConnectedElements ( const pandora::Cluster *const  pCluster,
const bool  ignoreUnavailable,
ElementList elementList 
) const
inline

Get a list of elements connected to a specified cluster.

Parameters
pClusteraddress of a cluster
ignoreUnavailablewhether to ignore unavailable clusters
elementListto receive the connected element list

Definition at line 308 of file LArOverlapTensor.h.

Here is the caller graph for this function:

◆ GetConnectedElements() [2/3]

template<typename T >
void lar_content::OverlapTensor< T >::GetConnectedElements ( const pandora::Cluster *const  pCluster,
const bool  ignoreUnavailable,
ElementList elementList,
pandora::ClusterList clusterListU,
pandora::ClusterList clusterListV,
pandora::ClusterList clusterListW 
) const
private

Get elements connected to a specified cluster.

Parameters
pClusteraddress of the cluster
elementListthe element list
clusterListUconnected u clusters
clusterListVconnected v clusters
clusterListWconnected w clusters

Definition at line 252 of file LArOverlapTensor.cc.

Here is the call graph for this function:

◆ GetConnectedElements() [3/3]

template<typename T >
void lar_content::OverlapTensor< T >::GetConnectedElements ( const pandora::Cluster *const  pCluster,
const bool  ignoreUnavailable,
ElementList elementList,
unsigned int &  nU,
unsigned int &  nV,
unsigned int &  nW 
) const

Get a list of elements connected to a specified cluster.

Parameters
pClusteraddress of a cluster
ignoreUnavailablewhether to ignore unavailable clusters
elementListto receive the connected element list
nUto receive the number of u connections
nVto receive the number of v connections
nWto receive the number of w connections

Definition at line 95 of file LArOverlapTensor.cc.

Here is the call graph for this function:

◆ GetNConnections()

template<typename T >
void lar_content::OverlapTensor< T >::GetNConnections ( const pandora::Cluster *const  pCluster,
const bool  ignoreUnavailable,
unsigned int &  nU,
unsigned int &  nV,
unsigned int &  nW 
) const
inline

Get the number of connections for a specified cluster.

Parameters
pClusteraddress of a cluster
ignoreUnavailablewhether to ignore unavailable clusters
nUto receive the number of u connections
nVto receive the number of v connections
nWto receive the number of w connections

Definition at line 298 of file LArOverlapTensor.h.

◆ GetOverlapList()

template<typename T >
const OverlapTensor< T >::OverlapList & lar_content::OverlapTensor< T >::GetOverlapList ( const pandora::Cluster *const  pClusterU,
const pandora::Cluster *const  pClusterV 
) const
inline

Get the overlap list for a specified pair of clusters.

Parameters
pClusterUaddress of cluster u
pClusterVaddress of cluster v
Returns
the cluster overlap list

Definition at line 348 of file LArOverlapTensor.h.

◆ GetOverlapMatrix()

template<typename T >
const OverlapTensor< T >::OverlapMatrix & lar_content::OverlapTensor< T >::GetOverlapMatrix ( const pandora::Cluster *const  pClusterU) const
inline

Get the cluster overlap matrix for a specified cluster.

Parameters
pClusterUaddress of cluster u
Returns
the cluster overlap matrix

Definition at line 363 of file LArOverlapTensor.h.

◆ GetOverlapResult()

template<typename T >
const OverlapTensor< T >::OverlapResult & lar_content::OverlapTensor< T >::GetOverlapResult ( const pandora::Cluster *const  pClusterU,
const pandora::Cluster *const  pClusterV,
const pandora::Cluster *const  pClusterW 
) const
inline

Get the overlap result for a specified trio of clusters.

Parameters
pClusterUaddress of cluster u
pClusterVaddress of cluster v
pClusterWaddress of cluster w
Returns
the address of the overlap result

Definition at line 333 of file LArOverlapTensor.h.

Here is the caller graph for this function:

◆ GetSortedKeyClusters()

template<typename T >
void lar_content::OverlapTensor< T >::GetSortedKeyClusters ( pandora::ClusterVector sortedKeyClusters) const

Get a sorted vector of key clusters (U clusters with current implementation)

Parameters
sortedKeyClustersto receive the sorted vector of key clusters

Definition at line 108 of file LArOverlapTensor.cc.

Here is the call graph for this function:

◆ GetUnambiguousElements()

template<typename T >
void lar_content::OverlapTensor< T >::GetUnambiguousElements ( const bool  ignoreUnavailable,
ElementList elementList 
) const

Get unambiguous elements.

Parameters
ignoreUnavailablewhether to ignore unavailable clusters
elementListto receive the unambiguous element list

Definition at line 42 of file LArOverlapTensor.cc.

Here is the call graph for this function:

◆ RemoveCluster()

template<typename T >
void lar_content::OverlapTensor< T >::RemoveCluster ( const pandora::Cluster *const  pCluster)

Remove entries from tensor corresponding to specified cluster.

Parameters
pClusteraddress of the cluster

Definition at line 170 of file LArOverlapTensor.cc.

◆ ReplaceOverlapResult()

template<typename T >
void lar_content::OverlapTensor< T >::ReplaceOverlapResult ( const pandora::Cluster *const  pClusterU,
const pandora::Cluster *const  pClusterV,
const pandora::Cluster *const  pClusterW,
const OverlapResult overlapResult 
)

SetReplace an existing overlap result.

Parameters
pClusterUaddress of cluster u
pClusterVaddress of cluster v
pClusterWaddress of cluster w
overlapResultthe overlap result

Definition at line 146 of file LArOverlapTensor.cc.

◆ SetOverlapResult()

template<typename T >
void lar_content::OverlapTensor< T >::SetOverlapResult ( const pandora::Cluster *const  pClusterU,
const pandora::Cluster *const  pClusterV,
const pandora::Cluster *const  pClusterW,
const OverlapResult overlapResult 
)

Set overlap result.

Parameters
pClusterUaddress of cluster u
pClusterVaddress of cluster v
pClusterWaddress of cluster w
overlapResultthe overlap result

Definition at line 119 of file LArOverlapTensor.cc.

Here is the caller graph for this function:

Member Data Documentation

◆ m_clusterNavigationMapUV

template<typename T >
ClusterNavigationMap lar_content::OverlapTensor< T >::m_clusterNavigationMapUV
private

The cluster navigation map U->V.

Definition at line 290 of file LArOverlapTensor.h.

◆ m_clusterNavigationMapVW

template<typename T >
ClusterNavigationMap lar_content::OverlapTensor< T >::m_clusterNavigationMapVW
private

The cluster navigation map V->W.

Definition at line 291 of file LArOverlapTensor.h.

◆ m_clusterNavigationMapWU

template<typename T >
ClusterNavigationMap lar_content::OverlapTensor< T >::m_clusterNavigationMapWU
private

The cluster navigation map W->U.

Definition at line 292 of file LArOverlapTensor.h.

◆ m_overlapTensor

template<typename T >
TheTensor lar_content::OverlapTensor< T >::m_overlapTensor
private

The overlap tensor.

Definition at line 289 of file LArOverlapTensor.h.


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