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

ThreeViewDeltaRayMatchingAlgorithm class. More...

#include "ThreeViewDeltaRayMatchingAlgorithm.h"

Inheritance diagram for lar_content::ThreeViewDeltaRayMatchingAlgorithm:
Collaboration diagram for lar_content::ThreeViewDeltaRayMatchingAlgorithm:

Public Types

typedef NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > > BaseAlgorithm
 
typedef ThreeViewDeltaRayMatchingAlgorithm::MatchingType::TensorType TensorType
 
typedef std::map< const pandora::CaloHit *, const pandora::Cluster * > HitToClusterMap
 
typedef std::map< const pandora::Cluster *, const pandora::ParticleFlowObject * > ClusterToPfoMap
 
typedef std::map< const pandora::Cluster *, pandora::ClusterListClusterProximityMap
 
typedef KDTreeLinkerAlgo< const pandora::CaloHit *, 2 > HitKDTree2D
 
typedef KDTreeNodeInfoT< const pandora::CaloHit *, 2 > HitKDNode2D
 
typedef std::vector< HitKDNode2DHitKDNode2DList
 
typedef std::vector< pandora::HitTypeHitTypeVector
 
typedef T MatchingType
 

Public Member Functions

 ThreeViewDeltaRayMatchingAlgorithm ()
 Default constructor.
 
std::string GetClusteringAlgName () const
 Get the name of the clustering algorithm to be used to recluster created delta ray remnants.
 
pandora::StatusCode GetMuonCluster (const pandora::PfoList &commonMuonPfoList, const pandora::HitType hitType, const pandora::Cluster *&pMuonCluster) const
 Return the cluster of the common cosmic ray pfo in a given view (function demands there to be only one common CR pfo)
 
pandora::StatusCode PerformThreeViewMatching (const pandora::Cluster *const pCluster1, const pandora::Cluster *const pCluster2, const pandora::Cluster *const pCluster3, float &reducedChiSquared) const
 To determine how well three clusters (one in each view) map onto one another expressing this in terms of a chi-squared like parameter.
 
pandora::StatusCode PerformThreeViewMatching (const pandora::Cluster *const pClusterU, const pandora::Cluster *const pClusterV, const pandora::Cluster *const pClusterW, float &chiSquaredSum, unsigned int &nSamplingPoints, unsigned int &nMatchedSamplingPoints, XOverlap &XOverlap) const
 To determine how well three clusters (one in each view) map onto one another expressing this in terms of a chi-squared like parameter.
 
pandora::StatusCode PerformThreeViewMatching (const pandora::CaloHitList &pCluster1, const pandora::CaloHitList &pCluster2, const pandora::CaloHitList &pCluster3, float &reducedChiSquared) const
 To determine how well three CaloHitLists (one in each view) map onto one another expressing this in terms of a chi-squared like parameter.
 
pandora::StatusCode PerformThreeViewMatching (const pandora::CaloHitList &clusterU, const pandora::CaloHitList &clusterV, const pandora::CaloHitList &clusterW, float &chiSquaredSum, unsigned int &nSamplingPoints, unsigned int &nMatchedSamplingPoints, XOverlap &XOverlap) const
 To determine how well three CaloHitLists (one for each view) map onto one another expressing this in terms of a chi-squared like parameter.
 
pandora::StatusCode ProjectMuonPositions (const pandora::HitType &thirdViewHitType, const pandora::ParticleFlowObject *const pParentMuon, pandora::CartesianPointVector &projectedPositions) const
 Use two views of a cosmic ray pfo to calculate projected positions in a given the third view.
 
pandora::StatusCode GetProjectedPositions (const pandora::Cluster *const pCluster1, const pandora::Cluster *const pCluster2, pandora::CartesianPointVector &projectedPositions) const
 Use two clusters from different views to calculate projected positions in the remaining third view.
 
pandora::StatusCode CollectHitsFromMuon (const pandora::Cluster *const pCluster1, const pandora::Cluster *const pCluster2, const pandora::Cluster *const pThirdViewCluster, const pandora::ParticleFlowObject *const pParentMuon, const float minDistanceFromMuon, const float maxDistanceToCollected, pandora::CaloHitList &collectedHits) const
 In one view, pull out any hits from a cosmic ray cluster that belong to the child delta ray cluster.
 
void CollectHitsFromMuon (const pandora::CartesianVector &positionOnMuon, const pandora::CartesianVector &muonDirection, const pandora::Cluster *const pMuonCluster, const pandora::CartesianPointVector &deltaRayProjectedPositions, const float &minDistanceFromMuon, const float maxDistanceToCollected, pandora::CaloHitList &collectedHits) const
 In one view, pull out any hits from a cosmic ray cluster that belong to the child delta ray cluster.
 
pandora::StatusCode ParameteriseMuon (const pandora::ParticleFlowObject *const pParentMuon, const pandora::Cluster *const pDeltaRayCluster, pandora::CartesianVector &positionOnMuon, pandora::CartesianVector &muonDirection) const
 Parameterise the projection of a cosmic ray track in order to avoid poor/sparse projections.
 
pandora::StatusCode ParameteriseMuon (const pandora::ParticleFlowObject *const pParentMuon, const pandora::CartesianPointVector &deltaRayProjectedPositions, const pandora::HitType hitType, pandora::CartesianVector &positionOnMuon, pandora::CartesianVector &muonDirection) const
 Parameterise the projection of a cosmic ray track in order to avoid poor/sparse projections.
 
void SplitMuonCluster (const std::string &clusterListName, const pandora::Cluster *const pMuonCluster, const pandora::CaloHitList &collectedHits, const pandora::Cluster *&pDeltaRayCluster) const
 Move a list of hits from a cosmic ray cluster into the given child delta ray cluster.
 
bool CreatePfos (ProtoParticleVector &protoParticleVector)
 Create delta ray pfos maxmising completeness by searching for and merging in any stray clusters.
 
void UpdateForNewClusters (const pandora::ClusterVector &newClusterVector, const pandora::PfoVector &pfoVector)
 Add a new cluster to algorithm ownership maps and, if it a delta ray cluster, to the underlying matches container (tensor/matrix)
 
void UpdateUponDeletion (const pandora::Cluster *const pDeletedCluster)
 Update to reflect cluster deletion.
 
void SelectInputClusters (const pandora::ClusterList *const pInputClusterList, pandora::ClusterList &selectedClusterList) const
 Select a subset of input clusters for processing in this algorithm.
 
void PrepareInputClusters (pandora::ClusterList &preparedClusterList)
 Perform any preparatory steps required on the input clusters, e.g. caching expensive fit results.
 
void UpdateForNewCluster (const pandora::Cluster *const pNewCluster)
 Update to reflect addition of a new cluster to the problem space.
 
const std::string & GetClusterListName (const pandora::HitType hitType) const
 Get the cluster list name corresponding to a specified hit type.
 
const pandora::ClusterListGetInputClusterList (const pandora::HitType hitType) const
 Get the input cluster list corresponding to a specified hit type.
 
const pandora::ClusterListGetSelectedClusterList (const pandora::HitType hitType) const
 Get the selected cluster list corresponding to a specified hit type.
 
virtual bool MakeClusterMerges (const ClusterMergeMap &clusterMergeMap)
 Merge clusters together.
 
virtual bool CreateThreeDParticles (const ProtoParticleVector &protoParticleVector)
 Create particles using findings from recent algorithm processing.
 
virtual void SetPfoParameters (const ProtoParticle &protoParticle, PandoraContentApi::ParticleFlowObject::Parameters &pfoParameters) const
 Set Pfo properties.
 
virtual void SetPfoParticleId (PandoraContentApi::ParticleFlowObject::Parameters &pfoParameters) const
 Set pfo particle id.
 
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

void FillStrayClusterList (const pandora::HitType hitType)
 Fill the stray cluster list with clusters that do not pass the tensor threshold requirement.
 
void GetNearbyMuonPfos (const pandora::Cluster *const pCluster, pandora::ClusterList &consideredClusters, pandora::PfoList &nearbyMuonPfos) const
 Use the cluster proximity map to travel along paths of nearby clusters finding the cosmic ray clusters on which they terminate.
 
void GetClusterSpanX (const pandora::CaloHitList &caloHitList, float &xMin, float &xMax) const
 Calculate the xSpan of a list of CaloHits.
 
pandora::StatusCode GetClusterSpanZ (const pandora::CaloHitList &caloHitList, const float xMin, const float xMax, float &zMin, float &zMax) const
 Calculate the zSpan of a list of CaloHits in a specified x range.
 
void CollectStrayClusters (const pandora::Cluster *const pClusterToEnlarge, const float rangeMinX, const float rangeMaxX, pandora::ClusterList &collectedClusters)
 Collect the stray clusters that are close to a specified cluster and that lie within a given x range.
 
void AddInStrayClusters (const pandora::Cluster *const pClusterToEnlarge, const pandora::ClusterList &collectedClusters)
 Merge in the collected stray clusters of a given delta ray cluster.
 
void TidyUp ()
 Tidy member variables in derived class.
 
MatchingTypeGetMatchingControl ()
 Get the matching control.
 
virtual void SelectAllInputClusters ()
 Select a subset of input clusters for processing in this algorithm.
 
virtual void PrepareAllInputClusters ()
 Perform any preparatory steps required, e.g. caching expensive fit results for clusters.
 
virtual void PerformMainLoop ()
 Main loop over cluster combinations in order to populate the overlap container. Responsible for calling CalculateOverlapResult.
 
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

std::string m_muonPfoListName
 The list of reconstructed cosmic ray pfos.
 
pandora::ClusterList m_strayClusterListU
 The list of U clusters that do not pass the tensor threshold requirement.
 
pandora::ClusterList m_strayClusterListV
 The list of V clusters that do not pass the tensor threshold requirement.
 
pandora::ClusterList m_strayClusterListW
 The list of W clusters that do not pass the tensor threshold requirement.
 
DeltaRayMatchingContainers m_deltaRayMatchingContainers
 The class of hit, cluster and pfo ownership and proximity maps.
 
float m_pseudoChi2Cut
 Pseudo chi2 cut for three view matching.
 
float m_xOverlapWindow
 The maximum allowed displacement in x position.
 
float m_minMatchedFraction
 The threshold matched fraction of sampling points for a good match.
 
unsigned int m_minMatchedPoints
 The threshold number of matched sampling points for a good match.
 
unsigned int m_minProjectedPositions
 The threshold number of projected points for a good projection.
 
float m_maxCosmicRayHitFraction
 The maximum allowed fraction of hits to be removed from the cosmic ray track.
 
float m_maxDistanceToCluster
 the maximum distance of a projected point to the cosmic ray cluster used when parameterising the cosmic ray cluster
 
float m_maxDistanceToReferencePoint
 the maximum distance of a projected point to the cosmic ray vertex used when parameterising the cosmic ray cluster
 
float m_strayClusterSeparation
 The maximum allowed separation of a stray cluster and a delta ray cluster for merge.
 
MatchingType m_matchingControl
 The matching control.
 
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< DeltaRayTensorTool * > TensorToolVector
 

Private Member Functions

void CalculateOverlapResult (const pandora::Cluster *const pClusterU, const pandora::Cluster *const pClusterV, const pandora::Cluster *const pClusterW)
 Calculate cluster overlap result and store in container.
 
void ExamineOverlapContainer ()
 Examine contents of overlap container, collect together best-matching 2D particles and modify clusters as required.
 
pandora::StatusCode ReadSettings (const pandora::TiXmlHandle xmlHandle)
 Read the algorithm settings.
 
virtual bool DoesClusterPassTensorThreshold (const pandora::Cluster *const pCluster) const
 To check whether a given cluster meets the requirements to be added into the matching container (tensor/matrix)
 
pandora::StatusCode CalculateOverlapResult (const pandora::Cluster *const pClusterU, const pandora::Cluster *const pClusterV, const pandora::Cluster *const pClusterW, DeltaRayOverlapResult &overlapResult) const
 Calculate the overlap result for given group of clusters.
 
void FindCommonMuonParents (const pandora::Cluster *const pClusterU, const pandora::Cluster *const pClusterV, const pandora::Cluster *const pClusterW, pandora::PfoList &commonMuonPfoList) const
 Find the cosmic ray pfos that, in each view, lie close to the clusters of the tensor element.
 
pandora::StatusCode Run ()
 Run the algorithm.
 

Private Attributes

TensorToolVector m_algorithmToolVector
 The algorithm tool vector.
 
std::string m_reclusteringAlgorithmName
 The name of the clustering algorithm to be used to recluster created delta ray remnants.
 
unsigned int m_minClusterCaloHits
 The threshold number of hits for a cluster to be considered.
 
unsigned int m_nMaxTensorToolRepeats
 The maximum number of repeat loops over tensor tools.
 
std::string m_outputPfoListName
 The output pfo list name.
 

Detailed Description

Member Typedef Documentation

◆ BaseAlgorithm

◆ ClusterProximityMap

◆ ClusterToPfoMap

◆ HitKDNode2D

◆ HitKDNode2DList

Definition at line 32 of file NViewDeltaRayMatchingAlgorithm.h.

◆ HitKDTree2D

◆ HitToClusterMap

Definition at line 26 of file NViewDeltaRayMatchingAlgorithm.h.

◆ HitTypeVector

◆ MatchingType

template<typename T >
typedef T lar_content::NViewMatchingAlgorithm< T >::MatchingType
inherited

Definition at line 23 of file NViewMatchingAlgorithm.h.

◆ TensorToolVector

◆ TensorType

typedef ThreeViewDeltaRayMatchingAlgorithm::MatchingType::TensorType lar_content::ThreeViewDeltaRayMatchingAlgorithm::TensorType

Definition at line 33 of file ThreeViewDeltaRayMatchingAlgorithm.h.

Constructor & Destructor Documentation

◆ ThreeViewDeltaRayMatchingAlgorithm()

lar_content::ThreeViewDeltaRayMatchingAlgorithm::ThreeViewDeltaRayMatchingAlgorithm ( )

Default constructor.

Definition at line 18 of file ThreeViewDeltaRayMatchingAlgorithm.cc.

Member Function Documentation

◆ AddInStrayClusters()

void lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >::AddInStrayClusters ( const pandora::Cluster *const  pClusterToEnlarge,
const pandora::ClusterList collectedClusters 
)
protectedinherited

Merge in the collected stray clusters of a given delta ray cluster.

Parameters
pClusterToEnlargethe delta ray cluster to enlarge
collectedClustersthe list of collected stray clusters

Definition at line 291 of file NViewDeltaRayMatchingAlgorithm.cc.

◆ CalculateOverlapResult() [1/2]

void lar_content::ThreeViewDeltaRayMatchingAlgorithm::CalculateOverlapResult ( const pandora::Cluster *const  pCluster1,
const pandora::Cluster *const  pCluster2,
const pandora::Cluster *const  pCluster3 
)
privatevirtual

Calculate cluster overlap result and store in container.

Parameters
pCluster1address of cluster1
pCluster2address of cluster2
pCluster3address of cluster3

Implements lar_content::MatchingBaseAlgorithm.

Definition at line 31 of file ThreeViewDeltaRayMatchingAlgorithm.cc.

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

◆ CalculateOverlapResult() [2/2]

StatusCode lar_content::ThreeViewDeltaRayMatchingAlgorithm::CalculateOverlapResult ( const pandora::Cluster *const  pClusterU,
const pandora::Cluster *const  pClusterV,
const pandora::Cluster *const  pClusterW,
DeltaRayOverlapResult overlapResult 
) const
private

Calculate the overlap result for given group of clusters.

Parameters
pClusterUthe cluster from the U view
pClusterVthe cluster from the V view
pClusterWthe cluster from the W view
overlapResultto receive the overlap result
Returns
statusCode, faster than throwing in regular use-cases

Definition at line 43 of file ThreeViewDeltaRayMatchingAlgorithm.cc.

Here is the call graph for this function:

◆ CollectHitsFromMuon() [1/2]

void lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >::CollectHitsFromMuon ( const pandora::CartesianVector positionOnMuon,
const pandora::CartesianVector muonDirection,
const pandora::Cluster *const  pMuonCluster,
const pandora::CartesianPointVector deltaRayProjectedPositions,
const float &  minDistanceFromMuon,
const float  maxDistanceToCollected,
pandora::CaloHitList collectedHits 
) const
inherited

In one view, pull out any hits from a cosmic ray cluster that belong to the child delta ray cluster.

Parameters
positionOnMuonthe parameterised cosmic ray position
muonDirectionthe parameterised cosmic ray direction
pMuonthe address of the parent cosmic ray pfo
deltaRayProjectedPositionsthe projected positions of the delta ray
minDistanceFromMuonthe minimum distance of a hit from the cosmic ray track required for removal
maxDistanceToCollectedthe maximim distance of a hit from the projected delta ray hits required for removal
collectedHitsthe list of hits to be removed from the cosmic ray

Definition at line 165 of file NViewDeltaRayMatchingAlgorithm.cc.

◆ CollectHitsFromMuon() [2/2]

StatusCode lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >::CollectHitsFromMuon ( const pandora::Cluster *const  pCluster1,
const pandora::Cluster *const  pCluster2,
const pandora::Cluster *const  pThirdViewCluster,
const pandora::ParticleFlowObject *const  pParentMuon,
const float  minDistanceFromMuon,
const float  maxDistanceToCollected,
pandora::CaloHitList collectedHits 
) const
inherited

In one view, pull out any hits from a cosmic ray cluster that belong to the child delta ray cluster.

Parameters
pCluster1the address of a delta ray cluster in a view that is to go unmodified
pCluster2the address of a delta ray cluster in the other view that is to unmodified
pThirdViewClusterthe address of the delta ray cluster in the view in which the hit removal process will run
pParentMuonthe address of the parent cosmic ray pfo
minDistanceFromMuonthe minimum distance of a hit from the cosmic ray track required for removal
maxDistanceToCollectedthe maximim distance of a hit from the projected delta ray hits required for removal
collectedHitsthe list of hits to be removed from the cosmic ray
Returns
a status code reflecting whether the procedure ran smoothly and if the outcome is good

Definition at line 150 of file NViewDeltaRayMatchingAlgorithm.cc.

◆ CollectStrayClusters()

void lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >::CollectStrayClusters ( const pandora::Cluster *const  pClusterToEnlarge,
const float  rangeMinX,
const float  rangeMaxX,
pandora::ClusterList collectedClusters 
)
protectedinherited

Collect the stray clusters that are close to a specified cluster and that lie within a given x range.

Parameters
pClusterToEnlargethe specified cluster
rangeMinXthe minimum x coordinate of the region of interest
rangeMaxXthe maximum x coordinate of the region of interest
collectedClustersthe list of collected stray clusters

Definition at line 282 of file NViewDeltaRayMatchingAlgorithm.cc.

◆ CreatePfos()

Create delta ray pfos maxmising completeness by searching for and merging in any stray clusters.

Parameters
protoParticleVectorthe proto particle vector
Returns
whether any pfos were created

Definition at line 214 of file NViewDeltaRayMatchingAlgorithm.cc.

◆ CreateThreeDParticles()

bool lar_content::MatchingBaseAlgorithm::CreateThreeDParticles ( const ProtoParticleVector protoParticleVector)
virtualinherited

Create particles using findings from recent algorithm processing.

Parameters
protoParticleVectorthe proto particle vector
whetherparticles were created

Definition at line 88 of file MatchingBaseAlgorithm.cc.

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

◆ DoesClusterPassTensorThreshold()

bool lar_content::ThreeViewDeltaRayMatchingAlgorithm::DoesClusterPassTensorThreshold ( const pandora::Cluster *const  pCluster) const
privatevirtual

To check whether a given cluster meets the requirements to be added into the matching container (tensor/matrix)

Parameters
pClusterthe address of the input cluster
Returns
whether the checks were met

Implements lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >.

Definition at line 24 of file ThreeViewDeltaRayMatchingAlgorithm.cc.

Here is the call graph for this function:

◆ ExamineOverlapContainer()

void lar_content::ThreeViewDeltaRayMatchingAlgorithm::ExamineOverlapContainer ( )
privatevirtual

Examine contents of overlap container, collect together best-matching 2D particles and modify clusters as required.

Implements lar_content::MatchingBaseAlgorithm.

Definition at line 108 of file ThreeViewDeltaRayMatchingAlgorithm.cc.

Here is the call graph for this function:

◆ FillStrayClusterList()

void lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >::FillStrayClusterList ( const pandora::HitType  hitType)
protectedinherited

Fill the stray cluster list with clusters that do not pass the tensor threshold requirement.

Parameters
hitTypethe hit type of the list to fill

Definition at line 243 of file NViewDeltaRayMatchingAlgorithm.cc.

◆ FindCommonMuonParents()

void lar_content::ThreeViewDeltaRayMatchingAlgorithm::FindCommonMuonParents ( const pandora::Cluster *const  pClusterU,
const pandora::Cluster *const  pClusterV,
const pandora::Cluster *const  pClusterW,
pandora::PfoList commonMuonPfoList 
) const
private

Find the cosmic ray pfos that, in each view, lie close to the clusters of the tensor element.

Parameters
pClusterUthe cluster from the U view
pClusterVthe cluster from the V view
pClusterWthe cluster from the W view
commonMuonPfoListthe output list of common cosmic ray pfos

Definition at line 69 of file ThreeViewDeltaRayMatchingAlgorithm.cc.

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

◆ GetClusteringAlgName()

std::string lar_content::ThreeViewDeltaRayMatchingAlgorithm::GetClusteringAlgName ( ) const
inline

Get the name of the clustering algorithm to be used to recluster created delta ray remnants.

Returns
the clustering algorithm name

Definition at line 119 of file ThreeViewDeltaRayMatchingAlgorithm.h.

Here is the caller graph for this function:

◆ GetClusterListName()

template<typename T >
const std::string & lar_content::NViewMatchingAlgorithm< T >::GetClusterListName ( const pandora::HitType  hitType) const
virtualinherited

Get the cluster list name corresponding to a specified hit type.

Parameters
hitTypethe hit type
Returns
the cluster list name

Implements lar_content::MatchingBaseAlgorithm.

Definition at line 57 of file NViewMatchingAlgorithm.cc.

Here is the caller graph for this function:

◆ GetClusterSpanX()

void lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >::GetClusterSpanX ( const pandora::CaloHitList caloHitList,
float &  xMin,
float &  xMax 
) const
protectedinherited

Calculate the xSpan of a list of CaloHits.

Parameters
caloHitListthe input list of CaloHits
xMinthe output minimum x coordinate
xMaxthe output maximum x coordinate

Definition at line 261 of file NViewDeltaRayMatchingAlgorithm.cc.

◆ GetClusterSpanZ()

StatusCode lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >::GetClusterSpanZ ( const pandora::CaloHitList caloHitList,
const float  xMin,
const float  xMax,
float &  zMin,
float &  zMax 
) const
protectedinherited

Calculate the zSpan of a list of CaloHits in a specified x range.

Parameters
caloHitListthe input list of CaloHits
xMinthe minimum x coordinate of the region of interest
xMaxthe maximum x coordinate of the region of interest
zMinthe output minimum z coordinate
zMaxthe output maximum z coordinate

Definition at line 272 of file NViewDeltaRayMatchingAlgorithm.cc.

◆ GetInputClusterList()

template<typename T >
const pandora::ClusterList & lar_content::NViewMatchingAlgorithm< T >::GetInputClusterList ( const pandora::HitType  hitType) const
virtualinherited

Get the input cluster list corresponding to a specified hit type.

Parameters
hitTypethe hit type
Returns
the input cluster list

Implements lar_content::MatchingBaseAlgorithm.

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

◆ GetMatchingControl()

template<typename T >
T & lar_content::NViewMatchingAlgorithm< T >::GetMatchingControl ( )
inlineprotectedinherited

Get the matching control.

Definition at line 59 of file NViewMatchingAlgorithm.h.

Here is the caller graph for this function:

◆ GetMuonCluster()

StatusCode lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >::GetMuonCluster ( const pandora::PfoList commonMuonPfoList,
const pandora::HitType  hitType,
const pandora::Cluster *&  pMuonCluster 
) const
inherited

Return the cluster of the common cosmic ray pfo in a given view (function demands there to be only one common CR pfo)

Parameters
commonMuonPfoListthe element's list of common muon pfos
hitTypethe specified view
pMuonClusterthe output address of the cluster
Returns
a status code reflecting if one and only one cosmic ray cluster was found

Definition at line 50 of file NViewDeltaRayMatchingAlgorithm.cc.

◆ GetNearbyMuonPfos()

void lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >::GetNearbyMuonPfos ( const pandora::Cluster *const  pCluster,
pandora::ClusterList consideredClusters,
pandora::PfoList nearbyMuonPfos 
) const
protectedinherited

Use the cluster proximity map to travel along paths of nearby clusters finding the cosmic ray clusters on which they terminate.

Parameters
pClusterthe address of the input cluster
consideredClustersthe list of investigated clusters
nearbyMuonPfosthe output list of the cosmic ray pfos to which the nearby cosmic ray clusters belong

Definition at line 252 of file NViewDeltaRayMatchingAlgorithm.cc.

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

◆ GetProjectedPositions()

StatusCode lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >::GetProjectedPositions ( const pandora::Cluster *const  pCluster1,
const pandora::Cluster *const  pCluster2,
pandora::CartesianPointVector projectedPositions 
) const
inherited

Use two clusters from different views to calculate projected positions in the remaining third view.

Parameters
pCluster1the address of the first cluster
pCluster2the address of the second cluster
projectedPositionsthe output projected positions
Returns
a status code reflecting whether the procedure ran smoothly and if the outcome is good

Definition at line 134 of file NViewDeltaRayMatchingAlgorithm.cc.

◆ GetSelectedClusterList()

template<typename T >
const pandora::ClusterList & lar_content::NViewMatchingAlgorithm< T >::GetSelectedClusterList ( const pandora::HitType  hitType) const
virtualinherited

Get the selected cluster list corresponding to a specified hit type.

Parameters
hitTypethe hit type
Returns
the selected cluster list

Implements lar_content::MatchingBaseAlgorithm.

Definition at line 73 of file NViewMatchingAlgorithm.cc.

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:

◆ MakeClusterMerges()

bool lar_content::MatchingBaseAlgorithm::MakeClusterMerges ( const ClusterMergeMap clusterMergeMap)
virtualinherited

Merge clusters together.

Parameters
clusterMergeMapthe cluster merge map
Returns
whether changes to the overlap container have been made

Definition at line 48 of file MatchingBaseAlgorithm.cc.

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

◆ ParameteriseMuon() [1/2]

StatusCode lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >::ParameteriseMuon ( const pandora::ParticleFlowObject *const  pParentMuon,
const pandora::CartesianPointVector deltaRayProjectedPositions,
const pandora::HitType  hitType,
pandora::CartesianVector positionOnMuon,
pandora::CartesianVector muonDirection 
) const
inherited

Parameterise the projection of a cosmic ray track in order to avoid poor/sparse projections.

Parameters
pParentMuonthe address of the cosmic ray pfo
deltaRayProjectedPositionsthe projected positions of the delta ray
hitTypethe view in which the projection is made
positionOnMuonthe output position to localise the parameterisation in space
muonDirectionthe output cosmic ray direction
Returns
a status code reflecting whether the procedure ran smoothly and if the outcome is good

Definition at line 193 of file NViewDeltaRayMatchingAlgorithm.cc.

◆ ParameteriseMuon() [2/2]

StatusCode lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >::ParameteriseMuon ( const pandora::ParticleFlowObject *const  pParentMuon,
const pandora::Cluster *const  pDeltaRayCluster,
pandora::CartesianVector positionOnMuon,
pandora::CartesianVector muonDirection 
) const
inherited

Parameterise the projection of a cosmic ray track in order to avoid poor/sparse projections.

Parameters
pParentMuonthe address of the cosmic ray pfo
pDeltaRayClusterthe address of the delta ray cluster in the projected view
positionOnMuonthe output position to localise the parameterisation in space
muonDirectionthe output cosmic ray direction
Returns
a status code reflecting whether the procedure ran smoothly and if the outcome is good

Definition at line 179 of file NViewDeltaRayMatchingAlgorithm.cc.

◆ PerformMainLoop()

template<typename T >
void lar_content::NViewMatchingAlgorithm< T >::PerformMainLoop ( )
protectedvirtualinherited

Main loop over cluster combinations in order to populate the overlap container. Responsible for calling CalculateOverlapResult.

Implements lar_content::MatchingBaseAlgorithm.

Reimplemented in lar_content::ThreeViewTrackFragmentsAlgorithm.

Definition at line 105 of file NViewMatchingAlgorithm.cc.

◆ PerformThreeViewMatching() [1/4]

StatusCode lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >::PerformThreeViewMatching ( const pandora::CaloHitList clusterU,
const pandora::CaloHitList clusterV,
const pandora::CaloHitList clusterW,
float &  chiSquaredSum,
unsigned int &  nSamplingPoints,
unsigned int &  nMatchedSamplingPoints,
XOverlap XOverlap 
) const
inherited

To determine how well three CaloHitLists (one for each view) map onto one another expressing this in terms of a chi-squared like parameter.

Parameters
clusterUthe U CaloHitList (if the xOverlap object is to be retained this must be the u cluster - for labels to make sense)
clusterVthe V CaloHitList
clusterWthe W CaloHitList
chiSquaredSumthe sum of the chi-squared values of the sampled points
nSamplingPointsthe number of sampled points
nMatchedSamplingPointsthe number of matched sampled points
xOverlapthe xOverlap object
Returns
a status code reflecting whether the matching procedure ran smoothly and if the outcome is good

Definition at line 109 of file NViewDeltaRayMatchingAlgorithm.cc.

◆ PerformThreeViewMatching() [2/4]

StatusCode lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >::PerformThreeViewMatching ( const pandora::CaloHitList pCluster1,
const pandora::CaloHitList pCluster2,
const pandora::CaloHitList pCluster3,
float &  reducedChiSquared 
) const
inherited

To determine how well three CaloHitLists (one in each view) map onto one another expressing this in terms of a chi-squared like parameter.

Parameters
pCluster1the first CaloHitList
pCluster2the second CaloHitList
pCluster3the third CaloHitList
reducedChiSquaredthe reduced chi squared
Returns
a status code reflecting whether the matching procedure ran smoothly and if the outcome is good

Definition at line 93 of file NViewDeltaRayMatchingAlgorithm.cc.

◆ PerformThreeViewMatching() [3/4]

StatusCode lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >::PerformThreeViewMatching ( const pandora::Cluster *const  pCluster1,
const pandora::Cluster *const  pCluster2,
const pandora::Cluster *const  pCluster3,
float &  reducedChiSquared 
) const
inherited

To determine how well three clusters (one in each view) map onto one another expressing this in terms of a chi-squared like parameter.

Parameters
pCluster1the first cluster
pCluster2the second cluster
pCluster3the third cluster
reducedChiSquaredthe reduced chi squared
Returns
a status code reflecting whether the matching procedure ran smoothly and if the outcome is good

Definition at line 63 of file NViewDeltaRayMatchingAlgorithm.cc.

◆ PerformThreeViewMatching() [4/4]

StatusCode lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >::PerformThreeViewMatching ( const pandora::Cluster *const  pClusterU,
const pandora::Cluster *const  pClusterV,
const pandora::Cluster *const  pClusterW,
float &  chiSquaredSum,
unsigned int &  nSamplingPoints,
unsigned int &  nMatchedSamplingPoints,
XOverlap XOverlap 
) const
inherited

To determine how well three clusters (one in each view) map onto one another expressing this in terms of a chi-squared like parameter.

Parameters
pClusterUthe U cluster (if the xOverlap object is to be retained this must be the u cluster - for labels to make sense)
pClusterVthe V cluster
pClusterWthe W cluster
chiSquaredSumthe sum of the chi-squared values of the sampled points
nSamplingPointsthe number of sampled points
nMatchedSamplingPointsthe number of matched sampled points
xOverlapthe xOverlap object
Returns
a status code reflecting whether the matching procedure ran smoothly and if the outcome is good

Definition at line 79 of file NViewDeltaRayMatchingAlgorithm.cc.

◆ PrepareAllInputClusters()

template<typename T >
void lar_content::NViewMatchingAlgorithm< T >::PrepareAllInputClusters ( )
protectedvirtualinherited

Perform any preparatory steps required, e.g. caching expensive fit results for clusters.

Implements lar_content::MatchingBaseAlgorithm.

Definition at line 89 of file NViewMatchingAlgorithm.cc.

◆ PrepareInputClusters()

void lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >::PrepareInputClusters ( pandora::ClusterList preparedClusterList)
virtualinherited

Perform any preparatory steps required on the input clusters, e.g. caching expensive fit results.

Parameters
preparedClusterListto receive the prepared cluster list, non const so as to be able to modify input selected list

Reimplemented from lar_content::MatchingBaseAlgorithm.

Definition at line 226 of file NViewDeltaRayMatchingAlgorithm.cc.

◆ ProjectMuonPositions()

StatusCode lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >::ProjectMuonPositions ( const pandora::HitType thirdViewHitType,
const pandora::ParticleFlowObject *const  pParentMuon,
pandora::CartesianPointVector projectedPositions 
) const
inherited

Use two views of a cosmic ray pfo to calculate projected positions in a given the third view.

Parameters
thirdViewHitTypethe view to be projected into
pParentMuonthe input cosmic ray pfo
projectedPositionsthe output projected positions
Returns
a status code reflecting whether the procedure ran smoothly and if the outcome is good

Definition at line 122 of file NViewDeltaRayMatchingAlgorithm.cc.

◆ ReadSettings()

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

Read the algorithm settings.

Parameters
xmlHandlethe relevant xml handle

Reimplemented from lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >.

Definition at line 128 of file ThreeViewDeltaRayMatchingAlgorithm.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::MatchingBaseAlgorithm::Run ( )
privatevirtualinherited

Run the algorithm.

Implements pandora::Algorithm.

Definition at line 135 of file MatchingBaseAlgorithm.cc.

Here is the call graph for this function:

◆ SelectAllInputClusters()

template<typename T >
void lar_content::NViewMatchingAlgorithm< T >::SelectAllInputClusters ( )
protectedvirtualinherited

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

Implements lar_content::MatchingBaseAlgorithm.

Definition at line 81 of file NViewMatchingAlgorithm.cc.

◆ SelectInputClusters()

void lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >::SelectInputClusters ( const pandora::ClusterList *const  pInputClusterList,
pandora::ClusterList selectedClusterList 
) const
virtualinherited

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

Parameters
pInputClusterListaddress of an input cluster list
selectedClusterListto receive the selected cluster list

Reimplemented from lar_content::MatchingBaseAlgorithm.

Definition at line 225 of file NViewDeltaRayMatchingAlgorithm.cc.

◆ SetPfoParameters()

void lar_content::MatchingBaseAlgorithm::SetPfoParameters ( const ProtoParticle protoParticle,
PandoraContentApi::ParticleFlowObject::Parameters &  pfoParameters 
) const
virtualinherited

Set Pfo properties.

Parameters
protoParticlethe input proto particle
pfoParametersthe output pfo parameters

Definition at line 116 of file MatchingBaseAlgorithm.cc.

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

◆ SetPfoParticleId()

void lar_content::MatchingBaseAlgorithm::SetPfoParticleId ( PandoraContentApi::ParticleFlowObject::Parameters &  pfoParameters) const
virtualinherited

◆ SplitMuonCluster()

void lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >::SplitMuonCluster ( const std::string &  clusterListName,
const pandora::Cluster *const  pMuonCluster,
const pandora::CaloHitList collectedHits,
const pandora::Cluster *&  pDeltaRayCluster 
) const
inherited

Move a list of hits from a cosmic ray cluster into the given child delta ray cluster.

Parameters
clusterListNamethe pandora list to which the cosmic ray and delta ray clusters belong
pMuonClusterthe address of the cosmic ray cluster
collectedHitsthe list of hits to reassign
pDeltaRayClusterthe address of the delta ray cluster (may be a nullptr if cluster is yet to be made)

Definition at line 204 of file NViewDeltaRayMatchingAlgorithm.cc.

◆ TidyUp()

Tidy member variables in derived class.

Reimplemented from lar_content::NViewMatchingAlgorithm< T >.

Definition at line 293 of file NViewDeltaRayMatchingAlgorithm.cc.

◆ UpdateForNewCluster()

◆ UpdateForNewClusters()

void lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >::UpdateForNewClusters ( const pandora::ClusterVector newClusterVector,
const pandora::PfoVector pfoVector 
)
inherited

Add a new cluster to algorithm ownership maps and, if it a delta ray cluster, to the underlying matches container (tensor/matrix)

Parameters
newClusterVectorthe vector of clusters to add - the order must match the pfoVector
pfoVectorthe vector of cosmic ray pfos to which the new clusters belong (nullptr for delta ray cluster)

Definition at line 222 of file NViewDeltaRayMatchingAlgorithm.cc.

◆ UpdateUponDeletion()

void lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >::UpdateUponDeletion ( const pandora::Cluster *const  pDeletedCluster)
virtualinherited

Update to reflect cluster deletion.

Parameters
pDeletedClusteraddress of the deleted cluster

Implements lar_content::MatchingBaseAlgorithm.

Definition at line 224 of file NViewDeltaRayMatchingAlgorithm.cc.

Member Data Documentation

◆ m_algorithmToolVector

TensorToolVector lar_content::ThreeViewDeltaRayMatchingAlgorithm::m_algorithmToolVector
private

The algorithm tool vector.

Definition at line 87 of file ThreeViewDeltaRayMatchingAlgorithm.h.

◆ m_deltaRayMatchingContainers

The class of hit, cluster and pfo ownership and proximity maps.

Definition at line 300 of file NViewDeltaRayMatchingAlgorithm.h.

◆ m_instanceName

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

The process instance name.

Definition at line 89 of file Process.h.

◆ m_matchingControl

template<typename T >
MatchingType lar_content::NViewMatchingAlgorithm< T >::m_matchingControl
protectedinherited

The matching control.

Definition at line 53 of file NViewMatchingAlgorithm.h.

◆ m_maxCosmicRayHitFraction

float lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >::m_maxCosmicRayHitFraction
protectedinherited

The maximum allowed fraction of hits to be removed from the cosmic ray track.

Definition at line 306 of file NViewDeltaRayMatchingAlgorithm.h.

◆ m_maxDistanceToCluster

float lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >::m_maxDistanceToCluster
protectedinherited

the maximum distance of a projected point to the cosmic ray cluster used when parameterising the cosmic ray cluster

Definition at line 307 of file NViewDeltaRayMatchingAlgorithm.h.

◆ m_maxDistanceToReferencePoint

float lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >::m_maxDistanceToReferencePoint
protectedinherited

the maximum distance of a projected point to the cosmic ray vertex used when parameterising the cosmic ray cluster

Definition at line 308 of file NViewDeltaRayMatchingAlgorithm.h.

◆ m_minClusterCaloHits

unsigned int lar_content::ThreeViewDeltaRayMatchingAlgorithm::m_minClusterCaloHits
private

The threshold number of hits for a cluster to be considered.

Definition at line 89 of file ThreeViewDeltaRayMatchingAlgorithm.h.

◆ m_minMatchedFraction

The threshold matched fraction of sampling points for a good match.

Definition at line 303 of file NViewDeltaRayMatchingAlgorithm.h.

◆ m_minMatchedPoints

unsigned int lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >::m_minMatchedPoints
protectedinherited

The threshold number of matched sampling points for a good match.

Definition at line 304 of file NViewDeltaRayMatchingAlgorithm.h.

◆ m_minProjectedPositions

unsigned int lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >::m_minProjectedPositions
protectedinherited

The threshold number of projected points for a good projection.

Definition at line 305 of file NViewDeltaRayMatchingAlgorithm.h.

◆ m_muonPfoListName

std::string lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >::m_muonPfoListName
protectedinherited

The list of reconstructed cosmic ray pfos.

Definition at line 296 of file NViewDeltaRayMatchingAlgorithm.h.

◆ m_nMaxTensorToolRepeats

unsigned int lar_content::ThreeViewDeltaRayMatchingAlgorithm::m_nMaxTensorToolRepeats
private

The maximum number of repeat loops over tensor tools.

Definition at line 90 of file ThreeViewDeltaRayMatchingAlgorithm.h.

◆ m_outputPfoListName

std::string lar_content::MatchingBaseAlgorithm::m_outputPfoListName
privateinherited

The output pfo list name.

Definition at line 181 of file MatchingBaseAlgorithm.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

Pseudo chi2 cut for three view matching.

Definition at line 301 of file NViewDeltaRayMatchingAlgorithm.h.

◆ m_reclusteringAlgorithmName

std::string lar_content::ThreeViewDeltaRayMatchingAlgorithm::m_reclusteringAlgorithmName
private

The name of the clustering algorithm to be used to recluster created delta ray remnants.

Definition at line 88 of file ThreeViewDeltaRayMatchingAlgorithm.h.

◆ m_strayClusterListU

The list of U clusters that do not pass the tensor threshold requirement.

Definition at line 297 of file NViewDeltaRayMatchingAlgorithm.h.

◆ m_strayClusterListV

The list of V clusters that do not pass the tensor threshold requirement.

Definition at line 298 of file NViewDeltaRayMatchingAlgorithm.h.

◆ m_strayClusterListW

The list of W clusters that do not pass the tensor threshold requirement.

Definition at line 299 of file NViewDeltaRayMatchingAlgorithm.h.

◆ m_strayClusterSeparation

float lar_content::NViewDeltaRayMatchingAlgorithm< ThreeViewMatchingControl< DeltaRayOverlapResult > >::m_strayClusterSeparation
protectedinherited

The maximum allowed separation of a stray cluster and a delta ray cluster for merge.

Definition at line 309 of file NViewDeltaRayMatchingAlgorithm.h.

◆ m_type

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

The process type.

Definition at line 88 of file Process.h.

◆ m_xOverlapWindow

The maximum allowed displacement in x position.

Definition at line 302 of file NViewDeltaRayMatchingAlgorithm.h.


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