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

TwoViewThreeDKinkTool class. More...

#include "TwoViewThreeDKinkTool.h"

Inheritance diagram for lar_content::TwoViewThreeDKinkTool:
Collaboration diagram for lar_content::TwoViewThreeDKinkTool:

Classes

class  Modification
 Modification class. More...
 
class  Particle
 Particle class. More...
 

Public Types

typedef TwoViewTransverseTracksAlgorithm::MatchingType::MatrixType MatrixType
 
typedef std::vector< MatrixType::ElementList::const_iterator > IteratorList
 

Public Member Functions

 TwoViewThreeDKinkTool ()
 Constructor.
 
virtual ~TwoViewThreeDKinkTool ()
 Destructor.
 
bool Run (TwoViewTransverseTracksAlgorithm *const pAlgorithm, MatrixType &overlapMatrix)
 Run the algorithm tool.
 
const std::string & GetType () const
 Get the type.
 
const std::string & GetInstanceName () const
 Get the instance name.
 
const PandoraGetPandora () const
 Get the associated pandora instance.
 

Protected Member Functions

virtual StatusCode Initialize ()
 Perform any operations that must occur after reading settings, but before running the process.
 
virtual StatusCode Reset ()
 Perform any operations when pandora is reset, typically at the end of each event.
 
StatusCode RegisterDetails (const Pandora *const pPandora, const std::string &type, const std::string &instanceName)
 Register i) the pandora instance that will run the process and ii) the process type.
 

Protected Attributes

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

Private Types

typedef std::vector< ModificationModificationList
 

Private Member Functions

void GetModifications (TwoViewTransverseTracksAlgorithm *const pAlgorithm, const MatrixType &overlapMatrix, ModificationList &modificationList) const
 Get modification objects, identifying required splits and merges for clusters.
 
bool PassesElementCuts (MatrixType::ElementList::const_iterator eIter, const pandora::ClusterSet &usedClusters) const
 Whether a provided (iterator to a) matrix element passes the selection cuts for overshoot identification.
 
void SelectMatrixElements (MatrixType::ElementList::const_iterator eIter, const MatrixType::ElementList &elementList, const pandora::ClusterSet &usedClusters, IteratorList &iteratorList) const
 Select elements representing possible components of interest due to overshoots or undershoots in clustering.
 
void GetIteratorListModifications (TwoViewTransverseTracksAlgorithm *const pAlgorithm, const IteratorList &iteratorList, ModificationList &modificationList) const
 Get modification objects for specific elements of the matrix, identifying required splits and merges for clusters.
 
bool IsThreeDKink (TwoViewTransverseTracksAlgorithm *const pAlgorithm, const Particle &particle, const pandora::CartesianVector &splitPosition, const bool isALowestInX) const
 Whether the provided particle is consistent with being a kink, when examined in three dimensions at the provided split position.
 
float GetXSamplingPoint (const pandora::CartesianVector &splitPosition1, const bool isForwardInX, const TwoDSlidingFitResult &fitResult1, const TwoDSlidingFitResult &fitResult2) const
 Get a sampling point in x that is common to sliding linear fit objects in two views.
 
bool ApplyChanges (TwoViewTransverseTracksAlgorithm *const pAlgorithm, const ModificationList &modificationList) const
 Apply the changes cached in a modification list and update the matrix accordingly.
 
pandora::StatusCode ReadSettings (const pandora::TiXmlHandle xmlHandle)
 Read the algorithm settings.
 

Static Private Member Functions

static bool IsALowestInX (const LArPointingCluster &pointingClusterA, const LArPointingCluster &pointingClusterB)
 Whether pointing cluster labelled A extends to lowest x positions (as opposed to that labelled B)
 

Private Attributes

float m_minXOverlapFraction
 The min x overlap fraction value for particle creation.
 
float m_minMatchingScore
 The min global matching score for particle creation.
 
float m_minLocallyMatchedFraction
 The min locally matched fraction for particle creation.
 
float m_minLongitudinalImpactParameter
 The min longitudinal impact parameter for connecting accompanying clusters.
 
int m_nLayersForKinkSearch
 The number of sliding fit layers to step in the kink search.
 
float m_additionalXStepForKinkSearch
 An additional (safety) step to tack-on when choosing x sampling.
 
float m_maxTransverseImpactParameter
 The maximum transverse impact parameter for connecting broken clusters.
 
float m_minImpactParameterCosTheta
 The minimum cos theta (angle between vertex directions) for connecting broken clusters.
 
float m_cosThetaCutForKinkSearch
 The cos theta cut used for the kink search in three dimensions.
 

Detailed Description

TwoViewThreeDKinkTool class.

Definition at line 21 of file TwoViewThreeDKinkTool.h.


Class Documentation

◆ lar_content::TwoViewThreeDKinkTool::Modification

class lar_content::TwoViewThreeDKinkTool::Modification

Modification class.

Definition at line 42 of file TwoViewThreeDKinkTool.h.

Class Members
ClusterList m_affectedClusters The list of affected clusters.
ClusterMergeMap m_clusterMergeMap The cluster merge map.
SplitPositionMap m_splitPositionMap The split position map.

Member Typedef Documentation

◆ IteratorList

typedef std::vector<MatrixType::ElementList::const_iterator> lar_content::TransverseMatrixTool::IteratorList
inherited

Definition at line 103 of file TwoViewTransverseTracksAlgorithm.h.

◆ MatrixType

typedef TwoViewTransverseTracksAlgorithm::MatchingType::MatrixType lar_content::TransverseMatrixTool::MatrixType
inherited

Definition at line 102 of file TwoViewTransverseTracksAlgorithm.h.

◆ ModificationList

Definition at line 50 of file TwoViewThreeDKinkTool.h.

Constructor & Destructor Documentation

◆ TwoViewThreeDKinkTool()

lar_content::TwoViewThreeDKinkTool::TwoViewThreeDKinkTool ( )

Constructor.

Parameters
nCommonClustersthe number of common clusters to select

Definition at line 23 of file TwoViewThreeDKinkTool.cc.

◆ ~TwoViewThreeDKinkTool()

lar_content::TwoViewThreeDKinkTool::~TwoViewThreeDKinkTool ( )
virtual

Destructor.

Definition at line 38 of file TwoViewThreeDKinkTool.cc.

Member Function Documentation

◆ ApplyChanges()

bool lar_content::TwoViewThreeDKinkTool::ApplyChanges ( TwoViewTransverseTracksAlgorithm *const  pAlgorithm,
const ModificationList modificationList 
) const
private

Apply the changes cached in a modification list and update the matrix accordingly.

Parameters
pAlgorithmaddress of the calling algorithm
modificationListthe modification list
Returns
whether changes to the matrix have been made

Definition at line 179 of file TwoViewThreeDKinkTool.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.

◆ GetIteratorListModifications()

void lar_content::TwoViewThreeDKinkTool::GetIteratorListModifications ( TwoViewTransverseTracksAlgorithm *const  pAlgorithm,
const IteratorList iteratorList,
ModificationList modificationList 
) const
private

Get modification objects for specific elements of the matrix, identifying required splits and merges for clusters.

Parameters
pAlgorithmaddress of the calling algorithm
iteratorListlist of iterators to relevant tensor elements
modificationListto be populated with modifications

Definition at line 268 of file TwoViewThreeDKinkTool.cc.

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

◆ GetModifications()

void lar_content::TwoViewThreeDKinkTool::GetModifications ( TwoViewTransverseTracksAlgorithm *const  pAlgorithm,
const MatrixType overlapMatrix,
ModificationList modificationList 
) const
private

Get modification objects, identifying required splits and merges for clusters.

Parameters
pAlgorithmaddress of the calling algorithm
overlapMatrixthe overlap matrix
modificationListto be populated with modifications

Definition at line 131 of file TwoViewThreeDKinkTool.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.

◆ GetXSamplingPoint()

float lar_content::TwoViewThreeDKinkTool::GetXSamplingPoint ( const pandora::CartesianVector splitPosition1,
const bool  isForwardInX,
const TwoDSlidingFitResult fitResult1,
const TwoDSlidingFitResult fitResult2 
) const
private

Get a sampling point in x that is common to sliding linear fit objects in two views.

Parameters
splitPosition1the split position in view 1
isForwardInXwhether to work forwards (or backwards) in x
fitResult1the sliding fit result in view 1
fitResult2the sliding fit result in view 2
Returns
the sampling point

Definition at line 80 of file TwoViewThreeDKinkTool.cc.

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

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

◆ IsALowestInX()

bool lar_content::TwoViewThreeDKinkTool::IsALowestInX ( const LArPointingCluster pointingClusterA,
const LArPointingCluster pointingClusterB 
)
staticprivate

Whether pointing cluster labelled A extends to lowest x positions (as opposed to that labelled B)

Parameters
pointingClusterApointing cluster A
pointingClusterBpointing cluster B

Definition at line 122 of file TwoViewThreeDKinkTool.cc.

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

◆ IsThreeDKink()

bool lar_content::TwoViewThreeDKinkTool::IsThreeDKink ( TwoViewTransverseTracksAlgorithm *const  pAlgorithm,
const Particle particle,
const pandora::CartesianVector splitPosition,
const bool  isALowestInX 
) const
private

Whether the provided particle is consistent with being a kink, when examined in three dimensions at the provided split position.

Parameters
pAlgorithmthe calling algorithm
particlethe particle
splitPositionthe candidate split position
isALowestInXwhether cluster associated with matrix element a extends to lowest x positions
Returns
boolean

Definition at line 352 of file TwoViewThreeDKinkTool.cc.

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

◆ PassesElementCuts()

bool lar_content::TwoViewThreeDKinkTool::PassesElementCuts ( MatrixType::ElementList::const_iterator  eIter,
const pandora::ClusterSet usedClusters 
) const
private

Whether a provided (iterator to a) matrix element passes the selection cuts for overshoot identification.

Parameters
eIterthe iterator to the matrix element
usedClustersthe list of used clusters

Definition at line 58 of file TwoViewThreeDKinkTool.cc.

Here is the caller graph for this function:

◆ ReadSettings()

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

Read the algorithm settings.

Parameters
xmlHandlethe relevant xml handle

Implements pandora::Process.

Definition at line 419 of file TwoViewThreeDKinkTool.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()

bool lar_content::TwoViewThreeDKinkTool::Run ( TwoViewTransverseTracksAlgorithm *const  pAlgorithm,
MatrixType overlapMatrix 
)
virtual

Run the algorithm tool.

Parameters
pAlgorithmaddress of the calling algorithm
overlapMatrixthe overlap matrix
Returns
whether changes have been made by the tool

Implements lar_content::TransverseMatrixTool.

Definition at line 44 of file TwoViewThreeDKinkTool.cc.

Here is the call graph for this function:

◆ SelectMatrixElements()

void lar_content::TwoViewThreeDKinkTool::SelectMatrixElements ( MatrixType::ElementList::const_iterator  eIter,
const MatrixType::ElementList &  elementList,
const pandora::ClusterSet usedClusters,
IteratorList iteratorList 
) const
private

Select elements representing possible components of interest due to overshoots or undershoots in clustering.

Parameters
eIteriterator to a candidate element
elementListthe provided element list
usedClustersthe list of used clusters
iteratorListto receive a list of iterators to relevant elements

Definition at line 228 of file TwoViewThreeDKinkTool.cc.

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

Member Data Documentation

◆ m_additionalXStepForKinkSearch

float lar_content::TwoViewThreeDKinkTool::m_additionalXStepForKinkSearch
private

An additional (safety) step to tack-on when choosing x sampling.

Definition at line 168 of file TwoViewThreeDKinkTool.h.

◆ m_cosThetaCutForKinkSearch

float lar_content::TwoViewThreeDKinkTool::m_cosThetaCutForKinkSearch
private

The cos theta cut used for the kink search in three dimensions.

Definition at line 171 of file TwoViewThreeDKinkTool.h.

◆ m_instanceName

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

The process instance name.

Definition at line 89 of file Process.h.

◆ m_maxTransverseImpactParameter

float lar_content::TwoViewThreeDKinkTool::m_maxTransverseImpactParameter
private

The maximum transverse impact parameter for connecting broken clusters.

Definition at line 169 of file TwoViewThreeDKinkTool.h.

◆ m_minImpactParameterCosTheta

float lar_content::TwoViewThreeDKinkTool::m_minImpactParameterCosTheta
private

The minimum cos theta (angle between vertex directions) for connecting broken clusters.

Definition at line 170 of file TwoViewThreeDKinkTool.h.

◆ m_minLocallyMatchedFraction

float lar_content::TwoViewThreeDKinkTool::m_minLocallyMatchedFraction
private

The min locally matched fraction for particle creation.

Definition at line 165 of file TwoViewThreeDKinkTool.h.

◆ m_minLongitudinalImpactParameter

float lar_content::TwoViewThreeDKinkTool::m_minLongitudinalImpactParameter
private

The min longitudinal impact parameter for connecting accompanying clusters.

Definition at line 166 of file TwoViewThreeDKinkTool.h.

◆ m_minMatchingScore

float lar_content::TwoViewThreeDKinkTool::m_minMatchingScore
private

The min global matching score for particle creation.

Definition at line 164 of file TwoViewThreeDKinkTool.h.

◆ m_minXOverlapFraction

float lar_content::TwoViewThreeDKinkTool::m_minXOverlapFraction
private

The min x overlap fraction value for particle creation.

Definition at line 163 of file TwoViewThreeDKinkTool.h.

◆ m_nLayersForKinkSearch

int lar_content::TwoViewThreeDKinkTool::m_nLayersForKinkSearch
private

The number of sliding fit layers to step in the kink search.

Definition at line 167 of file TwoViewThreeDKinkTool.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_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: