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

OvershootTracksTool class. More...

#include "OvershootTracksTool.h"

Inheritance diagram for lar_content::OvershootTracksTool:
Collaboration diagram for lar_content::OvershootTracksTool:

Classes

class  Particle
 Particle class. More...
 

Public Types

typedef ThreeViewTransverseTracksAlgorithm::MatchingType::TensorType TensorType
 
typedef std::vector< TensorType::ElementList::const_iterator > IteratorList
 

Public Member Functions

 OvershootTracksTool ()
 Default constructor.
 
bool Run (ThreeViewTransverseTracksAlgorithm *const pAlgorithm, TensorType &overlapTensor)
 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 Types

typedef std::vector< ModificationModificationList
 

Protected Member Functions

virtual bool PassesElementCuts (TensorType::ElementList::const_iterator eIter, const pandora::ClusterSet &usedClusters) const
 Whether a provided (iterator to a) tensor element passes the selection cuts for overshoot identification.
 
float GetXSamplingPoint (const pandora::CartesianVector &splitPosition1, const bool isForwardInX, const TwoDSlidingFitResult &fitResult1, const TwoDSlidingFitResult &fitResult2, const TwoDSlidingFitResult &fitResult3) const
 Get a sampling point in x that is common to sliding linear fit objects in three views.
 
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.
 

Static Protected 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)
 

Protected Attributes

unsigned int m_nCommonClusters
 The number of common clusters.
 
bool m_majorityRulesMode
 Whether to run in majority rules mode (always split overshoots, always merge undershoots)
 
float m_minMatchedFraction
 The min matched sampling point fraction for use as a key tensor element.
 
unsigned int m_minMatchedSamplingPoints
 The min number of matched sampling points for use as a key tensor element.
 
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 points.
 
const Pandoram_pPandora
 The pandora object that will run the process.
 
std::string m_type
 The process type.
 
std::string m_instanceName
 The process instance name.
 

Private Member Functions

void GetIteratorListModifications (ThreeViewTransverseTracksAlgorithm *const pAlgorithm, const IteratorList &iteratorList, ModificationList &modificationList) const
 Get modification objects for a specific elements of the tensor, identifying required splits and merges for clusters.
 
pandora::StatusCode ReadSettings (const pandora::TiXmlHandle xmlHandle)
 Read the algorithm settings.
 
bool PassesVertexCuts (const LArPointingCluster::Vertex &vertexA, const LArPointingCluster::Vertex &vertexB) const
 Whether a pair of vertices pass longitudinal projection cuts.
 
void SetSplitPosition (const LArPointingCluster::Vertex &vertexA1, const LArPointingCluster::Vertex &vertexA2, const LArPointingCluster::Vertex &vertexB1, const LArPointingCluster::Vertex &vertexB2, Particle &particle) const
 Set split position for a provided particle.
 
bool IsThreeDKink (ThreeViewTransverseTracksAlgorithm *const pAlgorithm, const Particle &particle, const bool isA1LowestInX, const bool isA2LowestInX) const
 Whether the provided particle is consistent with being a kink, when examined in three dimensions at the split position.
 
void GetModifications (ThreeViewTransverseTracksAlgorithm *const pAlgorithm, const TensorType &overlapTensor, ModificationList &modificationList) const
 Get modification objects, identifying required splits and merges for clusters.
 
void SelectTensorElements (TensorType::ElementList::const_iterator eIter, const TensorType::ElementList &elementList, const pandora::ClusterSet &usedClusters, IteratorList &iteratorList) const
 Select elements representing possible components of interest due to overshoots or undershoots in clustering.
 
bool ApplyChanges (ThreeViewTransverseTracksAlgorithm *const pAlgorithm, const ModificationList &modificationList) const
 Apply the changes cached in a modification list and update the tensor accordingly.
 

Private Attributes

bool m_splitMode
 Whether to run in cluster splitting mode, as opposed to cluster merging mode.
 
float m_maxVertexXSeparation
 The max separation between accompanying clusters vertex x positions to make split.
 
float m_cosThetaCutForKinkSearch
 The cos theta cut used for the kink search in three dimensions.
 

Detailed Description

OvershootTracksTool class.

Definition at line 19 of file OvershootTracksTool.h.

Member Typedef Documentation

◆ IteratorList

typedef std::vector<TensorType::ElementList::const_iterator> lar_content::TransverseTensorTool::IteratorList
inherited

Definition at line 131 of file ThreeViewTransverseTracksAlgorithm.h.

◆ ModificationList

typedef std::vector<Modification> lar_content::ThreeDKinkBaseTool::ModificationList
protectedinherited

Definition at line 50 of file ThreeDKinkBaseTool.h.

◆ TensorType

typedef ThreeViewTransverseTracksAlgorithm::MatchingType::TensorType lar_content::TransverseTensorTool::TensorType
inherited

Definition at line 130 of file ThreeViewTransverseTracksAlgorithm.h.

Constructor & Destructor Documentation

◆ OvershootTracksTool()

lar_content::OvershootTracksTool::OvershootTracksTool ( )

Default constructor.

Definition at line 22 of file OvershootTracksTool.cc.

Member Function Documentation

◆ ApplyChanges()

bool lar_content::ThreeDKinkBaseTool::ApplyChanges ( ThreeViewTransverseTracksAlgorithm *const  pAlgorithm,
const ModificationList modificationList 
) const
privateinherited

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

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

Definition at line 188 of file ThreeDKinkBaseTool.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::OvershootTracksTool::GetIteratorListModifications ( ThreeViewTransverseTracksAlgorithm *const  pAlgorithm,
const IteratorList iteratorList,
ModificationList modificationList 
) const
privatevirtual

Get modification objects for a specific elements of the tensor, 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

Implements lar_content::ThreeDKinkBaseTool.

Definition at line 32 of file OvershootTracksTool.cc.

Here is the call graph for this function:

◆ GetModifications()

void lar_content::ThreeDKinkBaseTool::GetModifications ( ThreeViewTransverseTracksAlgorithm *const  pAlgorithm,
const TensorType overlapTensor,
ModificationList modificationList 
) const
privateinherited

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

Parameters
pAlgorithmaddress of the calling algorithm
overlapTensorthe overlap tensor
modificationListto be populated with modifications

Definition at line 140 of file ThreeDKinkBaseTool.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::ThreeDKinkBaseTool::GetXSamplingPoint ( const pandora::CartesianVector splitPosition1,
const bool  isForwardInX,
const TwoDSlidingFitResult fitResult1,
const TwoDSlidingFitResult fitResult2,
const TwoDSlidingFitResult fitResult3 
) const
protectedinherited

Get a sampling point in x that is common to sliding linear fit objects in three 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
fitResult3the sliding fit result in view 3
Returns
the sampling point

Definition at line 59 of file ThreeDKinkBaseTool.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::ThreeDKinkBaseTool::IsALowestInX ( const LArPointingCluster pointingClusterA,
const LArPointingCluster pointingClusterB 
)
staticprotectedinherited

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 107 of file ThreeDKinkBaseTool.cc.

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

◆ IsThreeDKink()

bool lar_content::OvershootTracksTool::IsThreeDKink ( ThreeViewTransverseTracksAlgorithm *const  pAlgorithm,
const Particle particle,
const bool  isA1LowestInX,
const bool  isA2LowestInX 
) const
private

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

Parameters
pAlgorithmthe calling algorithm
particlethe particle
isA1LowestInXwhether cluster associated with tensor element a extends to lowest x positions in view 1
isA2LowestInXwhether cluster associated with tensor element a extends to lowest x positions in view 2
Returns
boolean

Definition at line 158 of file OvershootTracksTool.cc.

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

◆ PassesElementCuts()

bool lar_content::ThreeDKinkBaseTool::PassesElementCuts ( TensorType::ElementList::const_iterator  eIter,
const pandora::ClusterSet usedClusters 
) const
protectedvirtualinherited

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

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

Definition at line 43 of file ThreeDKinkBaseTool.cc.

Here is the caller graph for this function:

◆ PassesVertexCuts()

bool lar_content::OvershootTracksTool::PassesVertexCuts ( const LArPointingCluster::Vertex vertexA,
const LArPointingCluster::Vertex vertexB 
) const
private

Whether a pair of vertices pass longitudinal projection cuts.

Parameters
vertexAvertex from cluster in tensor element a
vertexBvertex from cluster in tensor element b

Definition at line 112 of file OvershootTracksTool.cc.

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

◆ ReadSettings()

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

Read the algorithm settings.

Parameters
xmlHandlethe relevant xml handle

Implements pandora::Process.

Definition at line 248 of file OvershootTracksTool.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::ThreeDKinkBaseTool::Run ( ThreeViewTransverseTracksAlgorithm *const  pAlgorithm,
TensorType overlapTensor 
)
virtualinherited

Run the algorithm tool.

Parameters
pAlgorithmaddress of the calling algorithm
overlapTensorthe overlap tensor
Returns
whether changes have been made by the tool

Implements lar_content::TransverseTensorTool.

Definition at line 126 of file ThreeDKinkBaseTool.cc.

Here is the call graph for this function:

◆ SelectTensorElements()

void lar_content::ThreeDKinkBaseTool::SelectTensorElements ( TensorType::ElementList::const_iterator  eIter,
const TensorType::ElementList &  elementList,
const pandora::ClusterSet usedClusters,
IteratorList iteratorList 
) const
privateinherited

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 237 of file ThreeDKinkBaseTool.cc.

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

◆ SetSplitPosition()

void lar_content::OvershootTracksTool::SetSplitPosition ( const LArPointingCluster::Vertex vertexA1,
const LArPointingCluster::Vertex vertexA2,
const LArPointingCluster::Vertex vertexB1,
const LArPointingCluster::Vertex vertexB2,
Particle particle 
) const
private

Set split position for a provided particle.

Parameters
vertexA1vertex for tensor element a in view 1
vertexA2vertex for tensor element a in view 2
vertexB1vertex for tensor element b in view 1
vertexB2vertex for tensor element b in view 2
particlethe particle

Definition at line 128 of file OvershootTracksTool.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::ThreeDKinkBaseTool::m_additionalXStepForKinkSearch
protectedinherited

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

Definition at line 100 of file ThreeDKinkBaseTool.h.

◆ m_cosThetaCutForKinkSearch

float lar_content::OvershootTracksTool::m_cosThetaCutForKinkSearch
private

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

Definition at line 91 of file OvershootTracksTool.h.

◆ m_instanceName

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

The process instance name.

Definition at line 89 of file Process.h.

◆ m_majorityRulesMode

bool lar_content::ThreeDKinkBaseTool::m_majorityRulesMode
protectedinherited

Whether to run in majority rules mode (always split overshoots, always merge undershoots)

Definition at line 95 of file ThreeDKinkBaseTool.h.

◆ m_maxVertexXSeparation

float lar_content::OvershootTracksTool::m_maxVertexXSeparation
private

The max separation between accompanying clusters vertex x positions to make split.

Definition at line 90 of file OvershootTracksTool.h.

◆ m_minLongitudinalImpactParameter

float lar_content::ThreeDKinkBaseTool::m_minLongitudinalImpactParameter
protectedinherited

The min longitudinal impact parameter for connecting accompanying clusters.

Definition at line 98 of file ThreeDKinkBaseTool.h.

◆ m_minMatchedFraction

float lar_content::ThreeDKinkBaseTool::m_minMatchedFraction
protectedinherited

The min matched sampling point fraction for use as a key tensor element.

Definition at line 96 of file ThreeDKinkBaseTool.h.

◆ m_minMatchedSamplingPoints

unsigned int lar_content::ThreeDKinkBaseTool::m_minMatchedSamplingPoints
protectedinherited

The min number of matched sampling points for use as a key tensor element.

Definition at line 97 of file ThreeDKinkBaseTool.h.

◆ m_nCommonClusters

unsigned int lar_content::ThreeDKinkBaseTool::m_nCommonClusters
protectedinherited

The number of common clusters.

Definition at line 94 of file ThreeDKinkBaseTool.h.

◆ m_nLayersForKinkSearch

int lar_content::ThreeDKinkBaseTool::m_nLayersForKinkSearch
protectedinherited

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

Definition at line 99 of file ThreeDKinkBaseTool.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_splitMode

bool lar_content::OvershootTracksTool::m_splitMode
private

Whether to run in cluster splitting mode, as opposed to cluster merging mode.

Definition at line 89 of file OvershootTracksTool.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: