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

MissingTrackSegmentTool class. More...

#include "MissingTrackSegmentTool.h"

Inheritance diagram for lar_content::MissingTrackSegmentTool:
Collaboration diagram for lar_content::MissingTrackSegmentTool:

Classes

class  Particle
 Particle class. More...
 
class  SegmentOverlap
 SegmentOverlap class. More...
 

Public Types

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

Public Member Functions

 MissingTrackSegmentTool ()
 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 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::unordered_map< const pandora::Cluster *, SegmentOverlapSegmentOverlapMap
 
typedef std::unordered_map< const pandora::Cluster *, pandora::ClusterListClusterMergeMap
 

Private Member Functions

pandora::StatusCode ReadSettings (const pandora::TiXmlHandle xmlHandle)
 Read the algorithm settings.
 
void FindTracks (ThreeViewTransverseTracksAlgorithm *const pAlgorithm, const TensorType &overlapTensor, ProtoParticleVector &protoParticleVector, ClusterMergeMap &clusterMergeMap) const
 Find remaining tracks, hidden by missing track segments (and maybe other ambiguities) in the tensor.
 
void SelectElements (const TensorType::ElementList &elementList, const pandora::ClusterSet &usedClusters, IteratorList &iteratorList) const
 Select a list of the relevant elements from a set of connected tensor elements.
 
bool PassesParticleChecks (ThreeViewTransverseTracksAlgorithm *const pAlgorithm, const TensorType::Element &element, pandora::ClusterSet &usedClusters, ClusterMergeMap &clusterMergeMap) const
 Whether a provided tensor element can be used to construct a pfo.
 
void GetCandidateClusters (ThreeViewTransverseTracksAlgorithm *const pAlgorithm, const Particle &particle, pandora::ClusterList &candidateClusters) const
 Get a list of candidate clusters, which may represent missing track segments for a provided particle.
 
void GetSlidingFitResultMap (ThreeViewTransverseTracksAlgorithm *const pAlgorithm, const pandora::ClusterList &candidateClusterList, TwoDSlidingFitResultMap &slidingFitResultMap) const
 Get a sliding fit result map for the list of candidate clusters.
 
void GetSegmentOverlapMap (ThreeViewTransverseTracksAlgorithm *const pAlgorithm, const Particle &particle, const TwoDSlidingFitResultMap &slidingFitResultMap, SegmentOverlapMap &segmentOverlapMap) const
 Get a segment overlap map, describing overlap between a provided particle and all clusters in a sliding fit result map.
 
bool MakeDecisions (const Particle &particle, const TwoDSlidingFitResultMap &slidingFitResultMap, const SegmentOverlapMap &segmentOverlapMap, pandora::ClusterSet &usedClusters, ClusterMergeMap &clusterMergeMap) const
 Make decisions about whether to create a pfo for a provided particle and whether to make cluster merges.
 
bool PassesSamplingCuts (const SegmentOverlap &segmentOverlap) const
 Whether the segment overlap object passes cuts on matched sampling points, etc.
 
bool IsPossibleMerge (const pandora::Cluster *const pCluster, const Particle &particle, const SegmentOverlap &segmentOverlap, const TwoDSlidingFitResultMap &slidingFitResultMap) const
 Whether the cluster could be merged with the candidate particle.
 

Private Attributes

float m_minMatchedFraction
 The min matched sampling point fraction for particle creation.
 
unsigned int m_minMatchedSamplingPoints
 The min number of matched sampling points for particle creation.
 
unsigned int m_minMatchedSamplingPointRatio
 The min ratio between 1st and 2nd highest msps for simple ambiguity resolution.
 
float m_minInitialXOverlapFraction
 The min x overlap fraction (between long clusters and short cluster vs. shared overlap)
 
float m_minFinalXOverlapFraction
 The min x overlap fraction between extended short cluster and the long clusters.
 
unsigned int m_minCaloHitsInCandidateCluster
 The min no. of calo hits in a candidate cluster, for matching with long clusters.
 
float m_pseudoChi2Cut
 The pseudo chi2 cut to determine whether a sampling point is matched.
 
unsigned int m_makePfoMinSamplingPoints
 The min number of sampling points in order to be able to make pfo.
 
unsigned int m_makePfoMinMatchedSamplingPoints
 The min number of matched sampling points in order to be able to make pfo.
 
float m_makePfoMinMatchedFraction
 The min matched sampling point fraction in order to be able to make pfo.
 
float m_makePfoMaxImpactParameter
 The max transverse impact parameter in order to be able to make pfo.
 
float m_mergeMaxChi2PerSamplingPoint
 The max value of chi2 per sampling point in order to merge cluster with parent.
 
float m_mergeXContainmentTolerance
 The tolerance in determining whether candidate cluster is contained in x window.
 

Detailed Description

MissingTrackSegmentTool class.

Definition at line 21 of file MissingTrackSegmentTool.h.

Member Typedef Documentation

◆ ClusterMergeMap

Definition at line 78 of file MissingTrackSegmentTool.h.

◆ IteratorList

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

Definition at line 131 of file ThreeViewTransverseTracksAlgorithm.h.

◆ SegmentOverlapMap

Definition at line 77 of file MissingTrackSegmentTool.h.

◆ TensorType

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

Definition at line 130 of file ThreeViewTransverseTracksAlgorithm.h.

Constructor & Destructor Documentation

◆ MissingTrackSegmentTool()

lar_content::MissingTrackSegmentTool::MissingTrackSegmentTool ( )

Default constructor.

Definition at line 25 of file MissingTrackSegmentTool.cc.

Member Function Documentation

◆ FindTracks()

void lar_content::MissingTrackSegmentTool::FindTracks ( ThreeViewTransverseTracksAlgorithm *const  pAlgorithm,
const TensorType overlapTensor,
ProtoParticleVector protoParticleVector,
ClusterMergeMap clusterMergeMap 
) const
private

Find remaining tracks, hidden by missing track segments (and maybe other ambiguities) in the tensor.

Parameters
pAlgorithmaddress of the calling algorithm
overlapTensorthe overlap tensor
protoParticleVectorto receive the list of proto particles
clusterMergeMapto receive the cluster merge map

Definition at line 61 of file MissingTrackSegmentTool.cc.

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

◆ GetCandidateClusters()

void lar_content::MissingTrackSegmentTool::GetCandidateClusters ( ThreeViewTransverseTracksAlgorithm *const  pAlgorithm,
const Particle particle,
pandora::ClusterList candidateClusters 
) const
private

Get a list of candidate clusters, which may represent missing track segments for a provided particle.

Parameters
pAlgorithmaddress of the calling algorithm
particlethe particle
candidateClustersto receive the list of candidate clusters

Definition at line 175 of file MissingTrackSegmentTool.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.

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

◆ GetSegmentOverlapMap()

void lar_content::MissingTrackSegmentTool::GetSegmentOverlapMap ( ThreeViewTransverseTracksAlgorithm *const  pAlgorithm,
const Particle particle,
const TwoDSlidingFitResultMap slidingFitResultMap,
SegmentOverlapMap segmentOverlapMap 
) const
private

Get a segment overlap map, describing overlap between a provided particle and all clusters in a sliding fit result map.

Parameters
pAlgorithmaddress of the calling algorithm
particlethe particle
slidingFitResultMapthe sliding fit result map
segmentOverlapMapto receive the segment overlap map

Definition at line 229 of file MissingTrackSegmentTool.cc.

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

◆ GetSlidingFitResultMap()

void lar_content::MissingTrackSegmentTool::GetSlidingFitResultMap ( ThreeViewTransverseTracksAlgorithm *const  pAlgorithm,
const pandora::ClusterList candidateClusterList,
TwoDSlidingFitResultMap slidingFitResultMap 
) const
private

Get a sliding fit result map for the list of candidate clusters.

Parameters
pAlgorithmaddress of the calling algorithm
candidateClustersthe list of candidate clusters
slidingFitResultMapto receive the sliding fit result map

Definition at line 196 of file MissingTrackSegmentTool.cc.

Here is the call graph for this function:
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:

◆ IsPossibleMerge()

bool lar_content::MissingTrackSegmentTool::IsPossibleMerge ( const pandora::Cluster *const  pCluster,
const Particle particle,
const SegmentOverlap segmentOverlap,
const TwoDSlidingFitResultMap slidingFitResultMap 
) const
private

Whether the cluster could be merged with the candidate particle.

Parameters
pClusteraddress of the cluster
particlethe particle
segmentOverlapthe segment overlap
slidingFitResultMapthe sliding fit result map
Returns
boolean

Definition at line 358 of file MissingTrackSegmentTool.cc.

Here is the caller graph for this function:

◆ MakeDecisions()

bool lar_content::MissingTrackSegmentTool::MakeDecisions ( const Particle particle,
const TwoDSlidingFitResultMap slidingFitResultMap,
const SegmentOverlapMap segmentOverlapMap,
pandora::ClusterSet usedClusters,
ClusterMergeMap clusterMergeMap 
) const
private

Make decisions about whether to create a pfo for a provided particle and whether to make cluster merges.

Parameters
particlethe particle
slidingFitResultMapthe sliding fit result map
segmentOverlapMapthe segment overlap map
usedClustersthe list of used clusters
clusterMergeMapto receive details of cluster merges clusterMergeMap
Returns
whether to make the particle

Definition at line 293 of file MissingTrackSegmentTool.cc.

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

◆ PassesParticleChecks()

bool lar_content::MissingTrackSegmentTool::PassesParticleChecks ( ThreeViewTransverseTracksAlgorithm *const  pAlgorithm,
const TensorType::Element &  element,
pandora::ClusterSet usedClusters,
ClusterMergeMap clusterMergeMap 
) const
private

Whether a provided tensor element can be used to construct a pfo.

Parameters
pAlgorithmaddress of the calling algorithm
elementthe tensor element
usedClustersthe list of used clusters
clusterMergeMapto receive the cluster merge map

Definition at line 140 of file MissingTrackSegmentTool.cc.

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

◆ PassesSamplingCuts()

bool lar_content::MissingTrackSegmentTool::PassesSamplingCuts ( const SegmentOverlap segmentOverlap) const
private

Whether the segment overlap object passes cuts on matched sampling points, etc.

Parameters
segmentOverlapthe segment overlap
Returns
boolean

Definition at line 342 of file MissingTrackSegmentTool.cc.

Here is the caller graph for this function:

◆ ReadSettings()

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

Read the algorithm settings.

Parameters
xmlHandlethe relevant xml handle

Implements pandora::Process.

Definition at line 419 of file MissingTrackSegmentTool.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::MissingTrackSegmentTool::Run ( ThreeViewTransverseTracksAlgorithm *const  pAlgorithm,
TensorType overlapTensor 
)
virtual

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 44 of file MissingTrackSegmentTool.cc.

Here is the call graph for this function:

◆ SelectElements()

void lar_content::MissingTrackSegmentTool::SelectElements ( const TensorType::ElementList &  elementList,
const pandora::ClusterSet usedClusters,
IteratorList iteratorList 
) const
private

Select a list of the relevant elements from a set of connected tensor elements.

Parameters
elementListthe full list of connected tensor elements
usedClustersthe list of clusters already marked as to be added to a pfo
iteratorListto receive a list of iterators to long track-like elements

Definition at line 106 of file MissingTrackSegmentTool.cc.

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

Member Data Documentation

◆ m_instanceName

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

The process instance name.

Definition at line 89 of file Process.h.

◆ m_makePfoMaxImpactParameter

float lar_content::MissingTrackSegmentTool::m_makePfoMaxImpactParameter
private

The max transverse impact parameter in order to be able to make pfo.

Definition at line 190 of file MissingTrackSegmentTool.h.

◆ m_makePfoMinMatchedFraction

float lar_content::MissingTrackSegmentTool::m_makePfoMinMatchedFraction
private

The min matched sampling point fraction in order to be able to make pfo.

Definition at line 189 of file MissingTrackSegmentTool.h.

◆ m_makePfoMinMatchedSamplingPoints

unsigned int lar_content::MissingTrackSegmentTool::m_makePfoMinMatchedSamplingPoints
private

The min number of matched sampling points in order to be able to make pfo.

Definition at line 188 of file MissingTrackSegmentTool.h.

◆ m_makePfoMinSamplingPoints

unsigned int lar_content::MissingTrackSegmentTool::m_makePfoMinSamplingPoints
private

The min number of sampling points in order to be able to make pfo.

Definition at line 187 of file MissingTrackSegmentTool.h.

◆ m_mergeMaxChi2PerSamplingPoint

float lar_content::MissingTrackSegmentTool::m_mergeMaxChi2PerSamplingPoint
private

The max value of chi2 per sampling point in order to merge cluster with parent.

Definition at line 192 of file MissingTrackSegmentTool.h.

◆ m_mergeXContainmentTolerance

float lar_content::MissingTrackSegmentTool::m_mergeXContainmentTolerance
private

The tolerance in determining whether candidate cluster is contained in x window.

Definition at line 193 of file MissingTrackSegmentTool.h.

◆ m_minCaloHitsInCandidateCluster

unsigned int lar_content::MissingTrackSegmentTool::m_minCaloHitsInCandidateCluster
private

The min no. of calo hits in a candidate cluster, for matching with long clusters.

Definition at line 184 of file MissingTrackSegmentTool.h.

◆ m_minFinalXOverlapFraction

float lar_content::MissingTrackSegmentTool::m_minFinalXOverlapFraction
private

The min x overlap fraction between extended short cluster and the long clusters.

Definition at line 182 of file MissingTrackSegmentTool.h.

◆ m_minInitialXOverlapFraction

float lar_content::MissingTrackSegmentTool::m_minInitialXOverlapFraction
private

The min x overlap fraction (between long clusters and short cluster vs. shared overlap)

Definition at line 181 of file MissingTrackSegmentTool.h.

◆ m_minMatchedFraction

float lar_content::MissingTrackSegmentTool::m_minMatchedFraction
private

The min matched sampling point fraction for particle creation.

Definition at line 177 of file MissingTrackSegmentTool.h.

◆ m_minMatchedSamplingPointRatio

unsigned int lar_content::MissingTrackSegmentTool::m_minMatchedSamplingPointRatio
private

The min ratio between 1st and 2nd highest msps for simple ambiguity resolution.

Definition at line 179 of file MissingTrackSegmentTool.h.

◆ m_minMatchedSamplingPoints

unsigned int lar_content::MissingTrackSegmentTool::m_minMatchedSamplingPoints
private

The min number of matched sampling points for particle creation.

Definition at line 178 of file MissingTrackSegmentTool.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

float lar_content::MissingTrackSegmentTool::m_pseudoChi2Cut
private

The pseudo chi2 cut to determine whether a sampling point is matched.

Definition at line 185 of file MissingTrackSegmentTool.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: