LArSoft  v06_85_00
Liquid Argon Software toolkit - http://larsoft.org/
lar_content::TrackSplittingTool Class Reference

TrackSplittingTool class. More...

#include "TrackSplittingTool.h"

Inheritance diagram for lar_content::TrackSplittingTool:
lar_content::TransverseTensorTool

Classes

class  Particle
 Particle class. More...
 

Public Types

typedef ThreeDTransverseTracksAlgorithm::TensorType TensorType
 
typedef std::vector< TensorType::ElementList::const_iteratorIteratorList
 

Public Member Functions

 TrackSplittingTool ()
 Default constructor. More...
 
bool Run (ThreeDTransverseTracksAlgorithm *const pAlgorithm, TensorType &overlapTensor)
 Run the algorithm tool. More...
 

Private Member Functions

pandora::StatusCode ReadSettings (const pandora::TiXmlHandle xmlHandle)
 
void FindTracks (ThreeDTransverseTracksAlgorithm *const pAlgorithm, const TensorType &overlapTensor, SplitPositionMap &splitPositionMap) const
 Find remaining tracks, hidden by spurious track segments (and maybe other ambiguities) in the tensor. More...
 
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. More...
 
bool PassesChecks (ThreeDTransverseTracksAlgorithm *const pAlgorithm, const TensorType::Element &element, const bool isMinX, pandora::ClusterSet &usedClusters, SplitPositionMap &splitPositionMap) const
 Whether a provided tensor element can be used to construct a pfo. More...
 
bool CheckSplitPosition (const pandora::CartesianVector &splitPosition, const float splitX, const TwoDSlidingFitResult &longFitResult) const
 Check a candidate split position for consistency with the associated track cluster sliding linear fit. More...
 

Private Attributes

float m_minMatchedFraction
 The min matched sampling point fraction for particle creation. More...
 
unsigned int m_minMatchedSamplingPoints
 The min number of matched sampling points for particle creation. More...
 
float m_minXOverlapFraction
 The min x overlap fraction (between long clusters and short cluster vs. shared overlap) More...
 
unsigned int m_minMatchedSamplingPointRatio
 The min ratio between 1st and 2nd highest msps for simple ambiguity resolution. More...
 
float m_maxShortDeltaXFraction
 Max x distance between ends of two short clusters (measured as fraction of long cluster x length) More...
 
float m_maxAbsoluteShortDeltaX
 Max x distance between ends of two short clusters (measured as an absolute distance) More...
 
float m_minLongDeltaXFraction
 Min x distance between ends of short and long clusters (measured as fraction of long cluster x length) More...
 
float m_minAbsoluteLongDeltaX
 Min x distance between ends of short and long clusters (measured as an absolute distance) More...
 
float m_minSplitToVertexProjection
 Min projected distance between split position and either inner or outer vertex of long cluster. More...
 
float m_maxSplitVsFitPositionDistance
 Max allowed distance between split position and sliding linear fit position at the split x coordinate. More...
 

Detailed Description

TrackSplittingTool class.

Definition at line 19 of file TrackSplittingTool.h.

Member Typedef Documentation

Constructor & Destructor Documentation

lar_content::TrackSplittingTool::TrackSplittingTool ( )

Default constructor.

Definition at line 23 of file TrackSplittingTool.cc.

23  :
34 {
35 }
unsigned int m_minMatchedSamplingPoints
The min number of matched sampling points for particle creation.
float m_minSplitToVertexProjection
Min projected distance between split position and either inner or outer vertex of long cluster...
float m_maxAbsoluteShortDeltaX
Max x distance between ends of two short clusters (measured as an absolute distance) ...
float m_minMatchedFraction
The min matched sampling point fraction for particle creation.
TFile f
Definition: plotHisto.C:6
float m_minAbsoluteLongDeltaX
Min x distance between ends of short and long clusters (measured as an absolute distance) ...
float m_maxShortDeltaXFraction
Max x distance between ends of two short clusters (measured as fraction of long cluster x length) ...
float m_minLongDeltaXFraction
Min x distance between ends of short and long clusters (measured as fraction of long cluster x length...
float m_minXOverlapFraction
The min x overlap fraction (between long clusters and short cluster vs. shared overlap) ...
unsigned int m_minMatchedSamplingPointRatio
The min ratio between 1st and 2nd highest msps for simple ambiguity resolution.
float m_maxSplitVsFitPositionDistance
Max allowed distance between split position and sliding linear fit position at the split x coordinate...

Member Function Documentation

bool lar_content::TrackSplittingTool::CheckSplitPosition ( const pandora::CartesianVector &  splitPosition,
const float  splitX,
const TwoDSlidingFitResult longFitResult 
) const
private

Check a candidate split position for consistency with the associated track cluster sliding linear fit.

Parameters
splitPositionthe candidate split position
splitXthe split x coordinate
longFitResultthe sliding linear fit for the long cluster

Definition at line 191 of file TrackSplittingTool.cc.

References lar_content::TwoDSlidingFitResult::GetGlobalFitPositionListAtX(), and m_maxSplitVsFitPositionDistance.

Referenced by PassesChecks().

192 {
193  CartesianPointVector fitPositionList;
194  if (STATUS_CODE_SUCCESS != longFitResult.GetGlobalFitPositionListAtX(splitX, fitPositionList))
195  return false;
196 
197  for (CartesianPointVector::const_iterator iter = fitPositionList.begin(), iterEnd = fitPositionList.end(); iter != iterEnd; ++iter)
198  {
199  if ((splitPosition - *iter).GetMagnitude() < m_maxSplitVsFitPositionDistance)
200  return true;
201  }
202 
203  return false;
204 }
intermediate_table::const_iterator const_iterator
float m_maxSplitVsFitPositionDistance
Max allowed distance between split position and sliding linear fit position at the split x coordinate...
void lar_content::TrackSplittingTool::FindTracks ( ThreeDTransverseTracksAlgorithm *const  pAlgorithm,
const TensorType overlapTensor,
SplitPositionMap splitPositionMap 
) const
private

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

Parameters
pAlgorithmaddress of the calling algorithm
overlapTensorthe overlap tensor
splitPositionMapto receive the split position map

Definition at line 53 of file TrackSplittingTool.cc.

References lar_content::OverlapTensor< T >::GetConnectedElements(), lar_content::OverlapTensor< T >::GetSortedKeyClusters(), lar_content::LongTracksTool::HasLongDirectConnections(), lar_content::LongTracksTool::IsLongerThanDirectConnections(), m_minMatchedSamplingPointRatio, PassesChecks(), and SelectElements().

Referenced by Run().

54 {
55  ClusterSet usedClusters;
56  ClusterVector sortedKeyClusters;
57  overlapTensor.GetSortedKeyClusters(sortedKeyClusters);
58 
59  for (const Cluster *const pKeyCluster : sortedKeyClusters)
60  {
61  if (!pKeyCluster->IsAvailable())
62  continue;
63 
64  unsigned int nU(0), nV(0), nW(0);
65  TensorType::ElementList elementList;
66  overlapTensor.GetConnectedElements(pKeyCluster, true, elementList, nU, nV, nW);
67 
68  IteratorList iteratorList;
69  this->SelectElements(elementList, usedClusters, iteratorList);
70 
71  for (IteratorList::const_iterator iIter = iteratorList.begin(), iIterEnd = iteratorList.end(); iIter != iIterEnd; ++iIter)
72  {
73  if (LongTracksTool::HasLongDirectConnections(iIter, iteratorList))
74  continue;
75 
77  continue;
78 
79  if (!this->PassesChecks(pAlgorithm, *(*iIter), true, usedClusters, splitPositionMap) &&
80  !this->PassesChecks(pAlgorithm, *(*iIter), false, usedClusters, splitPositionMap))
81  {
82  continue;
83  }
84 
85  usedClusters.insert((*iIter)->GetClusterU());
86  usedClusters.insert((*iIter)->GetClusterV());
87  usedClusters.insert((*iIter)->GetClusterW());
88  }
89  }
90 }
bool PassesChecks(ThreeDTransverseTracksAlgorithm *const pAlgorithm, const TensorType::Element &element, const bool isMinX, pandora::ClusterSet &usedClusters, SplitPositionMap &splitPositionMap) const
Whether a provided tensor element can be used to construct a pfo.
std::vector< TensorType::ElementList::const_iterator > IteratorList
static bool IsLongerThanDirectConnections(IteratorList::const_iterator iIter, const TensorType::ElementList &elementList, const unsigned int minMatchedSamplingPointRatio, const pandora::ClusterSet &usedClusters)
Whether a long element is significantly longer that other elements with which it shares a cluster...
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.
intermediate_table::const_iterator const_iterator
std::vector< art::Ptr< recob::Cluster > > ClusterVector
unsigned int m_minMatchedSamplingPointRatio
The min ratio between 1st and 2nd highest msps for simple ambiguity resolution.
static bool HasLongDirectConnections(IteratorList::const_iterator iIter, const IteratorList &iteratorList)
Whether a long element shares clusters with any other long elements.
bool lar_content::TrackSplittingTool::PassesChecks ( ThreeDTransverseTracksAlgorithm *const  pAlgorithm,
const TensorType::Element &  element,
const bool  isMinX,
pandora::ClusterSet &  usedClusters,
SplitPositionMap splitPositionMap 
) const
private

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

Parameters
pAlgorithmaddress of the calling algorithm
elementthe tensor element
isMinXwhether to look for track splits at min or max x coordinate
usedClustersthe list of used clusters
splitPositionMapto receive the split position map

Definition at line 131 of file TrackSplittingTool.cc.

References CheckSplitPosition(), f, lar_content::ThreeDTracksBaseAlgorithm< T >::GetCachedSlidingFitResult(), lar_content::LArClusterHelper::GetClusterHitType(), lar_content::TrackSplittingTool::Particle::m_longMaxX, lar_content::TrackSplittingTool::Particle::m_longMinX, m_maxAbsoluteShortDeltaX, m_maxShortDeltaXFraction, m_minAbsoluteLongDeltaX, m_minLongDeltaXFraction, m_minSplitToVertexProjection, lar_content::TrackSplittingTool::Particle::m_pCluster1, lar_content::TrackSplittingTool::Particle::m_pCluster2, lar_content::TrackSplittingTool::Particle::m_pLongCluster, lar_content::TrackSplittingTool::Particle::m_short1MaxX, lar_content::TrackSplittingTool::Particle::m_short1MinX, lar_content::TrackSplittingTool::Particle::m_short2MaxX, lar_content::TrackSplittingTool::Particle::m_short2MinX, max, and lar_content::LArGeometryHelper::MergeTwoPositions().

Referenced by FindTracks().

133 {
134  try
135  {
136  const Particle particle(element);
137 
138  if (usedClusters.count(particle.m_pLongCluster) || usedClusters.count(particle.m_pCluster1) || usedClusters.count(particle.m_pCluster2))
139  return false;
140 
141  const float longXSpan(particle.m_longMaxX - particle.m_longMinX);
142 
143  if (longXSpan < std::numeric_limits<float>::epsilon())
144  return false;
145 
146  const float splitX(isMinX ? (0.5f * (particle.m_short1MinX + particle.m_short2MinX)) : (0.5f * (particle.m_short1MaxX + particle.m_short2MaxX)));
147  const float shortDeltaX(isMinX ? std::fabs(particle.m_short1MinX - particle.m_short2MinX) : std::fabs(particle.m_short1MaxX - particle.m_short2MaxX));
148  const float longDeltaX(isMinX ? (splitX - particle.m_longMinX) : (particle.m_longMaxX - splitX));
149 
150  if (((shortDeltaX / longXSpan) > m_maxShortDeltaXFraction) || (shortDeltaX > m_maxAbsoluteShortDeltaX) ||
151  ((longDeltaX / longXSpan) < m_minLongDeltaXFraction) || (longDeltaX < m_minAbsoluteLongDeltaX))
152  {
153  return false;
154  }
155 
156  const LArPointingCluster pointingCluster1(pAlgorithm->GetCachedSlidingFitResult(particle.m_pCluster1));
157  const LArPointingCluster pointingCluster2(pAlgorithm->GetCachedSlidingFitResult(particle.m_pCluster2));
158  const LArPointingCluster longPointingCluster(pAlgorithm->GetCachedSlidingFitResult(particle.m_pLongCluster));
159 
160  const CartesianVector &position1(pointingCluster1.GetInnerVertex().GetPosition().GetX() < pointingCluster1.GetOuterVertex().GetPosition().GetX() ? pointingCluster1.GetInnerVertex().GetPosition() : pointingCluster1.GetOuterVertex().GetPosition());
161  const CartesianVector &position2(pointingCluster2.GetInnerVertex().GetPosition().GetX() < pointingCluster2.GetOuterVertex().GetPosition().GetX() ? pointingCluster2.GetInnerVertex().GetPosition() : pointingCluster2.GetOuterVertex().GetPosition());
162 
163  CartesianVector splitPosition(0.f, 0.f, 0.f);
164  float chiSquared(std::numeric_limits<float>::max());
165  LArGeometryHelper::MergeTwoPositions(this->GetPandora(), LArClusterHelper::GetClusterHitType(particle.m_pCluster1),
166  LArClusterHelper::GetClusterHitType(particle.m_pCluster2), position1, position2, splitPosition, chiSquared);
167 
168  if (!this->CheckSplitPosition(splitPosition, splitX, pAlgorithm->GetCachedSlidingFitResult(particle.m_pLongCluster)))
169  return false;
170 
171  const CartesianVector splitToInnerVertex(splitPosition - longPointingCluster.GetInnerVertex().GetPosition());
172  const CartesianVector outerVertexToSplit(longPointingCluster.GetOuterVertex().GetPosition() - splitPosition);
173  const CartesianVector outerToInnerUnitVector((longPointingCluster.GetOuterVertex().GetPosition() - longPointingCluster.GetInnerVertex().GetPosition()).GetUnitVector());
174 
175  if ((splitToInnerVertex.GetDotProduct(outerToInnerUnitVector) > m_minSplitToVertexProjection) &&
176  (outerVertexToSplit.GetDotProduct(outerToInnerUnitVector) > m_minSplitToVertexProjection))
177  {
178  splitPositionMap[particle.m_pLongCluster].push_back(splitPosition);
179  return true;
180  }
181  }
182  catch (StatusCodeException &)
183  {
184  }
185 
186  return false;
187 }
bool CheckSplitPosition(const pandora::CartesianVector &splitPosition, const float splitX, const TwoDSlidingFitResult &longFitResult) const
Check a candidate split position for consistency with the associated track cluster sliding linear fit...
float m_minSplitToVertexProjection
Min projected distance between split position and either inner or outer vertex of long cluster...
static pandora::HitType GetClusterHitType(const pandora::Cluster *const pCluster)
Get the hit type associated with a two dimensional cluster.
float m_maxAbsoluteShortDeltaX
Max x distance between ends of two short clusters (measured as an absolute distance) ...
TFile f
Definition: plotHisto.C:6
Int_t max
Definition: plot.C:27
float m_minAbsoluteLongDeltaX
Min x distance between ends of short and long clusters (measured as an absolute distance) ...
float m_maxShortDeltaXFraction
Max x distance between ends of two short clusters (measured as fraction of long cluster x length) ...
float m_minLongDeltaXFraction
Min x distance between ends of short and long clusters (measured as fraction of long cluster x length...
static float MergeTwoPositions(const pandora::Pandora &pandora, const pandora::HitType view1, const pandora::HitType view2, const float position1, const float position2)
Merge two views (U,V) to give a third view (Z).
StatusCode lar_content::TrackSplittingTool::ReadSettings ( const pandora::TiXmlHandle  xmlHandle)
private

Definition at line 234 of file TrackSplittingTool.cc.

References m_maxAbsoluteShortDeltaX, m_maxShortDeltaXFraction, m_maxSplitVsFitPositionDistance, m_minAbsoluteLongDeltaX, m_minLongDeltaXFraction, m_minMatchedFraction, m_minMatchedSamplingPointRatio, m_minMatchedSamplingPoints, m_minSplitToVertexProjection, and m_minXOverlapFraction.

235 {
236  PANDORA_RETURN_RESULT_IF_AND_IF(STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle,
237  "MinMatchedFraction", m_minMatchedFraction));
238 
239  PANDORA_RETURN_RESULT_IF_AND_IF(STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle,
240  "MinMatchedSamplingPoints", m_minMatchedSamplingPoints));
241 
242  PANDORA_RETURN_RESULT_IF_AND_IF(STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle,
243  "MinXOverlapFraction", m_minXOverlapFraction));
244 
245  PANDORA_RETURN_RESULT_IF_AND_IF(STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle,
246  "MinMatchedSamplingPointRatio", m_minMatchedSamplingPointRatio));
247 
248  PANDORA_RETURN_RESULT_IF_AND_IF(STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle,
249  "MaxShortDeltaXFraction", m_maxShortDeltaXFraction));
250 
251  PANDORA_RETURN_RESULT_IF_AND_IF(STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle,
252  "MaxAbsoluteShortDeltaX", m_maxAbsoluteShortDeltaX));
253 
254  PANDORA_RETURN_RESULT_IF_AND_IF(STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle,
255  "MinLongDeltaXFraction", m_minLongDeltaXFraction));
256 
257  PANDORA_RETURN_RESULT_IF_AND_IF(STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle,
258  "MinAbsoluteLongDeltaX", m_minAbsoluteLongDeltaX));
259 
260  PANDORA_RETURN_RESULT_IF_AND_IF(STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle,
261  "MinSplitToVertexProjection", m_minSplitToVertexProjection));
262 
263  PANDORA_RETURN_RESULT_IF_AND_IF(STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle,
264  "MaxSplitVsFitPositionDistance", m_maxSplitVsFitPositionDistance));
265 
266  return STATUS_CODE_SUCCESS;
267 }
unsigned int m_minMatchedSamplingPoints
The min number of matched sampling points for particle creation.
float m_minSplitToVertexProjection
Min projected distance between split position and either inner or outer vertex of long cluster...
float m_maxAbsoluteShortDeltaX
Max x distance between ends of two short clusters (measured as an absolute distance) ...
float m_minMatchedFraction
The min matched sampling point fraction for particle creation.
float m_minAbsoluteLongDeltaX
Min x distance between ends of short and long clusters (measured as an absolute distance) ...
float m_maxShortDeltaXFraction
Max x distance between ends of two short clusters (measured as fraction of long cluster x length) ...
float m_minLongDeltaXFraction
Min x distance between ends of short and long clusters (measured as fraction of long cluster x length...
float m_minXOverlapFraction
The min x overlap fraction (between long clusters and short cluster vs. shared overlap) ...
unsigned int m_minMatchedSamplingPointRatio
The min ratio between 1st and 2nd highest msps for simple ambiguity resolution.
float m_maxSplitVsFitPositionDistance
Max allowed distance between split position and sliding linear fit position at the split x coordinate...
bool lar_content::TrackSplittingTool::Run ( ThreeDTransverseTracksAlgorithm *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 39 of file TrackSplittingTool.cc.

References FindTracks(), and lar_content::ThreeDTracksBaseAlgorithm< T >::MakeClusterSplits().

40 {
41  if (PandoraContentApi::GetSettings(*pAlgorithm)->ShouldDisplayAlgorithmInfo())
42  std::cout << "----> Running Algorithm Tool: " << this->GetInstanceName() << ", " << this->GetType() << std::endl;
43 
44  SplitPositionMap splitPositionMap;
45  this->FindTracks(pAlgorithm, overlapTensor, splitPositionMap);
46 
47  const bool splitsMade(pAlgorithm->MakeClusterSplits(splitPositionMap));
48  return splitsMade;
49 }
std::unordered_map< const pandora::Cluster *, pandora::CartesianPointVector > SplitPositionMap
void FindTracks(ThreeDTransverseTracksAlgorithm *const pAlgorithm, const TensorType &overlapTensor, SplitPositionMap &splitPositionMap) const
Find remaining tracks, hidden by spurious track segments (and maybe other ambiguities) in the tensor...
void lar_content::TrackSplittingTool::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 94 of file TrackSplittingTool.cc.

References m_minMatchedFraction, m_minMatchedSamplingPoints, m_minXOverlapFraction, max, and min.

Referenced by FindTracks().

95 {
96  for (TensorType::ElementList::const_iterator eIter = elementList.begin(); eIter != elementList.end(); ++eIter)
97  {
98  if (usedClusters.count(eIter->GetClusterU()) || usedClusters.count(eIter->GetClusterV()) || usedClusters.count(eIter->GetClusterW()))
99  continue;
100 
101  if (eIter->GetOverlapResult().GetMatchedFraction() < m_minMatchedFraction)
102  continue;
103 
104  if (eIter->GetOverlapResult().GetNMatchedSamplingPoints() < m_minMatchedSamplingPoints)
105  continue;
106 
107  const XOverlap &xOverlap(eIter->GetOverlapResult().GetXOverlap());
108  const float longSpan(std::max(xOverlap.GetXSpanU(), std::max(xOverlap.GetXSpanV(), xOverlap.GetXSpanW())));
109  const float shortSpan1(std::min(xOverlap.GetXSpanU(), std::min(xOverlap.GetXSpanV(), xOverlap.GetXSpanW())));
110  const float shortSpan2(((xOverlap.GetXSpanU() > shortSpan1) && (xOverlap.GetXSpanU() < longSpan)) ? xOverlap.GetXSpanU() :
111  ((xOverlap.GetXSpanV() > shortSpan1) && (xOverlap.GetXSpanV() < longSpan)) ? xOverlap.GetXSpanV() : xOverlap.GetXSpanW());
112 
113  if ((shortSpan1 < std::numeric_limits<float>::epsilon()) || (longSpan < std::numeric_limits<float>::epsilon()))
114  continue;
115 
116  if ((shortSpan1 / xOverlap.GetXOverlapSpan()) < m_minXOverlapFraction)
117  continue;
118 
119  if ((shortSpan1 / shortSpan2) < m_minXOverlapFraction)
120  continue;
121 
122  if ((shortSpan1 / longSpan) > m_minXOverlapFraction)
123  continue;
124 
125  iteratorList.push_back(eIter);
126  }
127 }
unsigned int m_minMatchedSamplingPoints
The min number of matched sampling points for particle creation.
float m_minMatchedFraction
The min matched sampling point fraction for particle creation.
Int_t max
Definition: plot.C:27
intermediate_table::const_iterator const_iterator
Int_t min
Definition: plot.C:26
float m_minXOverlapFraction
The min x overlap fraction (between long clusters and short cluster vs. shared overlap) ...

Member Data Documentation

float lar_content::TrackSplittingTool::m_maxAbsoluteShortDeltaX
private

Max x distance between ends of two short clusters (measured as an absolute distance)

Definition at line 101 of file TrackSplittingTool.h.

Referenced by PassesChecks(), and ReadSettings().

float lar_content::TrackSplittingTool::m_maxShortDeltaXFraction
private

Max x distance between ends of two short clusters (measured as fraction of long cluster x length)

Definition at line 100 of file TrackSplittingTool.h.

Referenced by PassesChecks(), and ReadSettings().

float lar_content::TrackSplittingTool::m_maxSplitVsFitPositionDistance
private

Max allowed distance between split position and sliding linear fit position at the split x coordinate.

Definition at line 105 of file TrackSplittingTool.h.

Referenced by CheckSplitPosition(), and ReadSettings().

float lar_content::TrackSplittingTool::m_minAbsoluteLongDeltaX
private

Min x distance between ends of short and long clusters (measured as an absolute distance)

Definition at line 103 of file TrackSplittingTool.h.

Referenced by PassesChecks(), and ReadSettings().

float lar_content::TrackSplittingTool::m_minLongDeltaXFraction
private

Min x distance between ends of short and long clusters (measured as fraction of long cluster x length)

Definition at line 102 of file TrackSplittingTool.h.

Referenced by PassesChecks(), and ReadSettings().

float lar_content::TrackSplittingTool::m_minMatchedFraction
private

The min matched sampling point fraction for particle creation.

Definition at line 95 of file TrackSplittingTool.h.

Referenced by ReadSettings(), and SelectElements().

unsigned int lar_content::TrackSplittingTool::m_minMatchedSamplingPointRatio
private

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

Definition at line 98 of file TrackSplittingTool.h.

Referenced by FindTracks(), and ReadSettings().

unsigned int lar_content::TrackSplittingTool::m_minMatchedSamplingPoints
private

The min number of matched sampling points for particle creation.

Definition at line 96 of file TrackSplittingTool.h.

Referenced by ReadSettings(), and SelectElements().

float lar_content::TrackSplittingTool::m_minSplitToVertexProjection
private

Min projected distance between split position and either inner or outer vertex of long cluster.

Definition at line 104 of file TrackSplittingTool.h.

Referenced by PassesChecks(), and ReadSettings().

float lar_content::TrackSplittingTool::m_minXOverlapFraction
private

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

Definition at line 97 of file TrackSplittingTool.h.

Referenced by ReadSettings(), and SelectElements().


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