LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
lar_content::ThreeViewLongitudinalTracksAlgorithm Class Reference

ThreeViewLongitudinalTracksAlgorithm class. More...

#include "ThreeViewLongitudinalTracksAlgorithm.h"

Inheritance diagram for lar_content::ThreeViewLongitudinalTracksAlgorithm:
lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > > lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > > lar_content::MatchingBaseAlgorithm

Public Types

typedef NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > > BaseAlgorithm
 
typedef ThreeViewMatchingControl< LongitudinalOverlapResultMatchingType
 

Public Member Functions

 ThreeViewLongitudinalTracksAlgorithm ()
 Default constructor. More...
 
const TwoDSlidingFitResultGetCachedSlidingFitResult (const pandora::Cluster *const pCluster) const
 Get a sliding fit result from the algorithm cache. More...
 
unsigned int GetSlidingFitWindow () const
 Get the layer window for the sliding linear fits. More...
 
virtual bool MakeClusterSplits (const SplitPositionMap &splitPositionMap)
 Make cluster splits. More...
 
virtual bool MakeClusterSplit (const pandora::CartesianVector &splitPosition, const pandora::Cluster *&pCurrentCluster, const pandora::Cluster *&pLowXCluster, const pandora::Cluster *&pHighXCluster) const
 Make a cluster split. More...
 
virtual void UpdateForNewCluster (const pandora::Cluster *const pNewCluster)
 Update to reflect addition of a new cluster to the problem space. More...
 
virtual void UpdateUponDeletion (const pandora::Cluster *const pDeletedCluster)
 Update to reflect cluster deletion. More...
 
virtual void SelectInputClusters (const pandora::ClusterList *const pInputClusterList, pandora::ClusterList &selectedClusterList) const
 Select a subset of input clusters for processing in this algorithm. More...
 
virtual void PrepareInputClusters (pandora::ClusterList &preparedClusterList)
 Perform any preparatory steps required on the input clusters, e.g. caching expensive fit results. More...
 
virtual void SetPfoParticleId (PandoraContentApi::ParticleFlowObject::Parameters &pfoParameters) const
 Set pfo particle id. More...
 
const std::string & GetClusterListName (const pandora::HitType hitType) const
 Get the cluster list name corresponding to a specified hit type. More...
 
const pandora::ClusterList & GetInputClusterList (const pandora::HitType hitType) const
 Get the input cluster list corresponding to a specified hit type. More...
 
const pandora::ClusterList & GetSelectedClusterList (const pandora::HitType hitType) const
 Get the selected cluster list corresponding to a specified hit type. More...
 
virtual bool MakeClusterMerges (const ClusterMergeMap &clusterMergeMap)
 Merge clusters together. More...
 
virtual bool CreateThreeDParticles (const ProtoParticleVector &protoParticleVector)
 Create particles using findings from recent algorithm processing. More...
 
virtual void SetPfoParameters (const ProtoParticle &protoParticle, PandoraContentApi::ParticleFlowObject::Parameters &pfoParameters) const
 Set Pfo properties. More...
 

Static Public Member Functions

static bool SortSplitPositions (const pandora::CartesianVector &lhs, const pandora::CartesianVector &rhs)
 Sort split position cartesian vectors by increasing x coordinate. More...
 

Protected Member Functions

void AddToSlidingFitCache (const pandora::Cluster *const pCluster)
 Add a new sliding fit result, for the specified cluster, to the algorithm cache. More...
 
void RemoveFromSlidingFitCache (const pandora::Cluster *const pCluster)
 Remova an existing sliding fit result, for the specified cluster, from the algorithm cache. More...
 
virtual void TidyUp ()
 Tidy member variables in derived class. More...
 
MatchingTypeGetMatchingControl ()
 Get the matching control. More...
 
virtual void SelectAllInputClusters ()
 Select a subset of input clusters for processing in this algorithm. More...
 
virtual void PrepareAllInputClusters ()
 Perform any preparatory steps required, e.g. caching expensive fit results for clusters. More...
 
virtual void PerformMainLoop ()
 Main loop over cluster combinations in order to populate the overlap container. Responsible for calling CalculateOverlapResult. More...
 

Protected Attributes

MatchingType m_matchingControl
 The matching control. More...
 

Private Types

typedef std::vector< LongitudinalTensorTool * > 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. More...
 
void CalculateOverlapResult (const pandora::Cluster *const pClusterU, const pandora::Cluster *const pClusterV, const pandora::Cluster *const pClusterW, LongitudinalOverlapResult &overlapResult)
 Calculate the overlap result for given group of clusters. More...
 
void CalculateOverlapResult (const TwoDSlidingFitResult &slidingFitResultU, const TwoDSlidingFitResult &slidingFitResultV, const TwoDSlidingFitResult &slidingFitResultW, const pandora::CartesianVector &vtxMerged3D, const pandora::CartesianVector &endMerged3D, TrackOverlapResult &overlapResult) const
 Calculate the overlap result for given 3D vertex and end positions. More...
 
void ExamineOverlapContainer ()
 Examine contents of overlap container, collect together best-matching 2D particles and modify clusters as required. More...
 
pandora::StatusCode ReadSettings (const pandora::TiXmlHandle xmlHandle)
 

Private Attributes

TensorToolVector m_algorithmToolVector
 The algorithm tool vector. More...
 
unsigned int m_nMaxTensorToolRepeats
 The maximum number of repeat loops over tensor tools. More...
 
float m_vertexChi2Cut
 The maximum allowed chi2 for associating end points from three views. More...
 
float m_reducedChi2Cut
 The maximum allowed chi2 for associating hit positions from three views. More...
 
float m_samplingPitch
 Pitch used to generate sampling points along tracks. More...
 

Detailed Description

Member Typedef Documentation

Constructor & Destructor Documentation

lar_content::ThreeViewLongitudinalTracksAlgorithm::ThreeViewLongitudinalTracksAlgorithm ( )

Default constructor.

Definition at line 21 of file ThreeViewLongitudinalTracksAlgorithm.cc.

References CalculateOverlapResult(), f, lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >::GetCachedSlidingFitResult(), lar_content::TwoDSlidingFitResult::GetGlobalFitProjection(), lar_content::TwoDSlidingFitResult::GetGlobalMaxLayerPosition(), lar_content::TwoDSlidingFitResult::GetGlobalMinLayerPosition(), lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >::GetMatchingControl(), lar_content::TrackOverlapResult::GetNMatchedSamplingPoints(), lar_content::ThreeViewMatchingControl< T >::GetOverlapTensor(), lar_content::TrackOverlapResult::IsInitialized(), m_reducedChi2Cut, m_samplingPitch, m_vertexChi2Cut, lar_content::LArGeometryHelper::MergeThreePositions(), lar_content::LArGeometryHelper::MergeTwoPositions3D(), n, lar_content::LArGeometryHelper::ProjectPosition(), and lar_content::OverlapTensor< T >::SetOverlapResult().

21  :
23  m_vertexChi2Cut(10.f),
26 {
27 }
unsigned int m_nMaxTensorToolRepeats
The maximum number of repeat loops over tensor tools.
TFile f
Definition: plotHisto.C:6
float m_samplingPitch
Pitch used to generate sampling points along tracks.
float m_vertexChi2Cut
The maximum allowed chi2 for associating end points from three views.
float m_reducedChi2Cut
The maximum allowed chi2 for associating hit positions from three views.

Member Function Documentation

void lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >::AddToSlidingFitCache ( const pandora::Cluster *const  pCluster)
protectedinherited

Add a new sliding fit result, for the specified cluster, to the algorithm cache.

Parameters
pClusteraddress of the relevant cluster
void lar_content::ThreeViewLongitudinalTracksAlgorithm::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.

Referenced by ThreeViewLongitudinalTracksAlgorithm().

void lar_content::ThreeViewLongitudinalTracksAlgorithm::CalculateOverlapResult ( const pandora::Cluster *const  pClusterU,
const pandora::Cluster *const  pClusterV,
const pandora::Cluster *const  pClusterW,
LongitudinalOverlapResult overlapResult 
)
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
void lar_content::ThreeViewLongitudinalTracksAlgorithm::CalculateOverlapResult ( const TwoDSlidingFitResult slidingFitResultU,
const TwoDSlidingFitResult slidingFitResultV,
const TwoDSlidingFitResult slidingFitResultW,
const pandora::CartesianVector &  vtxMerged3D,
const pandora::CartesianVector &  endMerged3D,
TrackOverlapResult overlapResult 
) const
private

Calculate the overlap result for given 3D vertex and end positions.

Parameters
slidingFitResultUthe sliding fit result u
slidingFitResultVthe sliding fit result v
slidingFitResultWthe sliding fit result w
vtxMerged3Dthe 3D vertex position
endMerged3Dthe 3D end position
overlapResultto receive the overlap result
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.

Referenced by lar_content::NViewDeltaRayMatchingAlgorithm< T >::CreatePfos(), lar_content::ClearRemnantsTool::CreateThreeDParticles(), lar_content::TwoViewClearTracksTool::CreateThreeDParticles(), lar_content::ClearLongitudinalTracksTool::CreateThreeDParticles(), lar_content::ClearTracksTool::CreateThreeDParticles(), lar_content::ClearTrackFragmentsTool::FindTrackFragments(), lar_content::TwoViewSimpleTracksTool::Run(), lar_content::MissingTrackTool::Run(), lar_content::ConnectedRemnantsTool::Run(), lar_content::MopUpRemnantsTool::Run(), lar_content::MatchedEndPointsTool::Run(), lar_content::SimpleShowersTool::Run(), lar_content::TracksCrossingGapsTool::Run(), lar_content::MissingTrackSegmentTool::Run(), lar_content::LongTracksTool::Run(), lar_content::TwoViewLongTracksTool::Run(), and lar_content::ClearShowersTool::Run().

89 {
90  bool particlesMade(false);
91  const PfoList *pPfoList(nullptr);
92  std::string pfoListName;
93  PANDORA_THROW_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::CreateTemporaryListAndSetCurrent(*this, pPfoList, pfoListName));
94 
95  for (const ProtoParticle &protoParticle : protoParticleVector)
96  {
97  PandoraContentApi::ParticleFlowObject::Parameters pfoParameters;
98  this->SetPfoParameters(protoParticle, pfoParameters);
99 
100  const ParticleFlowObject *pPfo(nullptr);
101  PANDORA_THROW_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::ParticleFlowObject::Create(*this, pfoParameters, pPfo));
102  particlesMade = true;
103  }
104 
105  if (!pPfoList->empty())
106  {
107  PANDORA_THROW_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::SaveList<Pfo>(*this, m_outputPfoListName));
108  PANDORA_THROW_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::ReplaceCurrentList<Pfo>(*this, m_outputPfoListName));
109  }
110 
111  return particlesMade;
112 }
virtual void SetPfoParameters(const ProtoParticle &protoParticle, PandoraContentApi::ParticleFlowObject::Parameters &pfoParameters) const
Set Pfo properties.
std::string m_outputPfoListName
The output pfo list name.
void lar_content::ThreeViewLongitudinalTracksAlgorithm::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 201 of file ThreeViewLongitudinalTracksAlgorithm.cc.

References m_algorithmToolVector, and m_nMaxTensorToolRepeats.

202 {
203  unsigned int repeatCounter(0);
204 
205  for (TensorToolVector::const_iterator iter = m_algorithmToolVector.begin(), iterEnd = m_algorithmToolVector.end(); iter != iterEnd;)
206  {
207  if ((*iter)->Run(this, this->GetMatchingControl().GetOverlapTensor()))
208  {
209  iter = m_algorithmToolVector.begin();
210 
211  if (++repeatCounter > m_nMaxTensorToolRepeats)
212  break;
213  }
214  else
215  {
216  ++iter;
217  }
218  }
219 }
unsigned int m_nMaxTensorToolRepeats
The maximum number of repeat loops over tensor tools.
intermediate_table::const_iterator const_iterator
TensorToolVector m_algorithmToolVector
The algorithm tool vector.
const TwoDSlidingFitResult& lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >::GetCachedSlidingFitResult ( const pandora::Cluster *const  pCluster) const
inherited

Get a sliding fit result from the algorithm cache.

Parameters
pClusteraddress of the relevant cluster

Referenced by ThreeViewLongitudinalTracksAlgorithm().

const std::string& lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >::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.

const pandora::ClusterList& lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >::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.

Get the matching control.

Referenced by ThreeViewLongitudinalTracksAlgorithm().

const pandora::ClusterList& lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >::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.

unsigned int lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >::GetSlidingFitWindow ( ) const
inherited

Get the layer window for the sliding linear fits.

Returns
the layer window for the sliding linear fits
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.

Referenced by lar_content::SplitShowersTool::ApplyChanges(), lar_content::ThreeDKinkBaseTool::ApplyChanges(), lar_content::TwoViewThreeDKinkTool::ApplyChanges(), lar_content::ConnectedRemnantsTool::Run(), and lar_content::MissingTrackSegmentTool::Run().

49 {
50  ClusterSet deletedClusters;
51 
52  ClusterList parentClusters;
53  for (const auto &mapEntry : clusterMergeMap)
54  parentClusters.push_back(mapEntry.first);
55  parentClusters.sort(LArClusterHelper::SortByNHits);
56 
57  for (const Cluster *const pParentCluster : parentClusters)
58  {
59  const HitType hitType(LArClusterHelper::GetClusterHitType(pParentCluster));
60  const std::string &clusterListName(this->GetClusterListName(hitType));
61 
62  if (!((TPC_VIEW_U == hitType) || (TPC_VIEW_V == hitType) || (TPC_VIEW_W == hitType)))
63  throw StatusCodeException(STATUS_CODE_FAILURE);
64 
65  ClusterList daughterClusters(clusterMergeMap.at(pParentCluster));
66  daughterClusters.sort(LArClusterHelper::SortByNHits);
67 
68  for (const Cluster *const pDaughterCluster : daughterClusters)
69  {
70  if (deletedClusters.count(pParentCluster) || deletedClusters.count(pDaughterCluster))
71  throw StatusCodeException(STATUS_CODE_FAILURE);
72 
73  this->UpdateUponDeletion(pDaughterCluster);
74  this->UpdateUponDeletion(pParentCluster);
75  PANDORA_THROW_RESULT_IF(STATUS_CODE_SUCCESS, !=,
76  PandoraContentApi::MergeAndDeleteClusters(*this, pParentCluster, pDaughterCluster, clusterListName, clusterListName));
77 
78  this->UpdateForNewCluster(pParentCluster);
79  deletedClusters.insert(pDaughterCluster);
80  }
81  }
82 
83  return !(deletedClusters.empty());
84 }
static bool SortByNHits(const pandora::Cluster *const pLhs, const pandora::Cluster *const pRhs)
Sort clusters by number of hits, then layer span, then inner layer, then position, then pulse-height.
virtual void UpdateUponDeletion(const pandora::Cluster *const pDeletedCluster)=0
Update to reflect cluster deletion.
static pandora::HitType GetClusterHitType(const pandora::Cluster *const pCluster)
Get the hit type associated with a two dimensional cluster.
virtual const std::string & GetClusterListName(const pandora::HitType hitType) const =0
Get the cluster list name corresponding to a specified hit type.
virtual void UpdateForNewCluster(const pandora::Cluster *const pNewCluster)=0
Update to reflect addition of a new cluster to the problem space.
HitType
Definition: HitType.h:12
virtual bool lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >::MakeClusterSplit ( const pandora::CartesianVector &  splitPosition,
const pandora::Cluster *&  pCurrentCluster,
const pandora::Cluster *&  pLowXCluster,
const pandora::Cluster *&  pHighXCluster 
) const
virtualinherited

Make a cluster split.

Parameters
splitPositionthe split position
pCurrentClusterthe cluster to split
pLowXClusterto receive the low x cluster
pHighXClusterto receive the high x cluster
Returns
whether a cluster split occurred
virtual bool lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >::MakeClusterSplits ( const SplitPositionMap splitPositionMap)
virtualinherited

Make cluster splits.

Parameters
splitPositionMapthe split position map
Returns
whether changes to the overlap container have been made
virtual void lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >::PerformMainLoop ( )
protectedvirtualinherited

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

Implements lar_content::MatchingBaseAlgorithm.

virtual void lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >::PrepareAllInputClusters ( )
protectedvirtualinherited

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

Implements lar_content::MatchingBaseAlgorithm.

virtual void lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >::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.

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

Reimplemented from lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >.

Definition at line 223 of file ThreeViewLongitudinalTracksAlgorithm.cc.

References m_algorithmToolVector, m_nMaxTensorToolRepeats, m_reducedChi2Cut, m_samplingPitch, m_vertexChi2Cut, and lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >::ReadSettings().

224 {
225  AlgorithmToolVector algorithmToolVector;
226  PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, XmlHelper::ProcessAlgorithmToolList(*this, xmlHandle, "TrackTools", algorithmToolVector));
227 
228  for (AlgorithmToolVector::const_iterator iter = algorithmToolVector.begin(), iterEnd = algorithmToolVector.end(); iter != iterEnd; ++iter)
229  {
230  LongitudinalTensorTool *const pLongitudinalTensorTool(dynamic_cast<LongitudinalTensorTool *>(*iter));
231 
232  if (!pLongitudinalTensorTool)
233  return STATUS_CODE_INVALID_PARAMETER;
234 
235  m_algorithmToolVector.push_back(pLongitudinalTensorTool);
236  }
237 
238  PANDORA_RETURN_RESULT_IF_AND_IF(
239  STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle, "NMaxTensorToolRepeats", m_nMaxTensorToolRepeats));
240 
241  PANDORA_RETURN_RESULT_IF_AND_IF(STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle, "VertexChi2Cut", m_vertexChi2Cut));
242 
243  PANDORA_RETURN_RESULT_IF_AND_IF(STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle, "ReducedChi2Cut", m_reducedChi2Cut));
244 
245  PANDORA_RETURN_RESULT_IF_AND_IF(STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle, "SamplingPitch", m_samplingPitch));
246 
247  if (m_samplingPitch < std::numeric_limits<float>::epsilon())
248  return STATUS_CODE_INVALID_PARAMETER;
249 
250  return BaseAlgorithm::ReadSettings(xmlHandle);
251 }
virtual pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
unsigned int m_nMaxTensorToolRepeats
The maximum number of repeat loops over tensor tools.
intermediate_table::const_iterator const_iterator
float m_samplingPitch
Pitch used to generate sampling points along tracks.
TensorToolVector m_algorithmToolVector
The algorithm tool vector.
float m_vertexChi2Cut
The maximum allowed chi2 for associating end points from three views.
float m_reducedChi2Cut
The maximum allowed chi2 for associating hit positions from three views.
void lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >::RemoveFromSlidingFitCache ( const pandora::Cluster *const  pCluster)
protectedinherited

Remova an existing sliding fit result, for the specified cluster, from the algorithm cache.

Parameters
pClusteraddress of the relevant cluster
virtual void lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >::SelectAllInputClusters ( )
protectedvirtualinherited

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

Implements lar_content::MatchingBaseAlgorithm.

virtual void lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >::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.

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.

References f, and lar_content::ProtoParticle::m_clusterList.

117 {
118  this->SetPfoParticleId(pfoParameters);
119  pfoParameters.m_charge = PdgTable::GetParticleCharge(pfoParameters.m_particleId.Get());
120  pfoParameters.m_mass = PdgTable::GetParticleMass(pfoParameters.m_particleId.Get());
121  pfoParameters.m_energy = 0.f;
122  pfoParameters.m_momentum = CartesianVector(0.f, 0.f, 0.f);
123  pfoParameters.m_clusterList = protoParticle.m_clusterList;
124 }
TFile f
Definition: plotHisto.C:6
virtual void SetPfoParticleId(PandoraContentApi::ParticleFlowObject::Parameters &pfoParameters) const
Set pfo particle id.
virtual void lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >::SetPfoParticleId ( PandoraContentApi::ParticleFlowObject::Parameters &  pfoParameters) const
virtualinherited

Set pfo particle id.

Parameters
pfoParametersthe output pfo parameters

Reimplemented from lar_content::MatchingBaseAlgorithm.

static bool lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >::SortSplitPositions ( const pandora::CartesianVector &  lhs,
const pandora::CartesianVector &  rhs 
)
staticinherited

Sort split position cartesian vectors by increasing x coordinate.

Parameters
lhsthe first cartesian vector
rhsthe second cartesian vector
virtual void lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >::TidyUp ( )
protectedvirtualinherited

Tidy member variables in derived class.

Reimplemented from lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >.

virtual void lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >::UpdateForNewCluster ( const pandora::Cluster *const  pNewCluster)
virtualinherited

Update to reflect addition of a new cluster to the problem space.

Parameters
pNewClusteraddress of the new cluster

Reimplemented from lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >.

virtual void lar_content::NViewTrackMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >::UpdateUponDeletion ( const pandora::Cluster *const  pDeletedCluster)
virtualinherited

Update to reflect cluster deletion.

Parameters
pDeletedClusteraddress of the deleted cluster

Reimplemented from lar_content::NViewMatchingAlgorithm< ThreeViewMatchingControl< LongitudinalOverlapResult > >.

Member Data Documentation

TensorToolVector lar_content::ThreeViewLongitudinalTracksAlgorithm::m_algorithmToolVector
private

The algorithm tool vector.

Definition at line 72 of file ThreeViewLongitudinalTracksAlgorithm.h.

Referenced by ExamineOverlapContainer(), and ReadSettings().

The matching control.

Definition at line 53 of file NViewMatchingAlgorithm.h.

unsigned int lar_content::ThreeViewLongitudinalTracksAlgorithm::m_nMaxTensorToolRepeats
private

The maximum number of repeat loops over tensor tools.

Definition at line 74 of file ThreeViewLongitudinalTracksAlgorithm.h.

Referenced by ExamineOverlapContainer(), and ReadSettings().

float lar_content::ThreeViewLongitudinalTracksAlgorithm::m_reducedChi2Cut
private

The maximum allowed chi2 for associating hit positions from three views.

Definition at line 76 of file ThreeViewLongitudinalTracksAlgorithm.h.

Referenced by ReadSettings(), and ThreeViewLongitudinalTracksAlgorithm().

float lar_content::ThreeViewLongitudinalTracksAlgorithm::m_samplingPitch
private

Pitch used to generate sampling points along tracks.

Definition at line 77 of file ThreeViewLongitudinalTracksAlgorithm.h.

Referenced by ReadSettings(), and ThreeViewLongitudinalTracksAlgorithm().

float lar_content::ThreeViewLongitudinalTracksAlgorithm::m_vertexChi2Cut
private

The maximum allowed chi2 for associating end points from three views.

Definition at line 75 of file ThreeViewLongitudinalTracksAlgorithm.h.

Referenced by ReadSettings(), and ThreeViewLongitudinalTracksAlgorithm().


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