All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Protected Types | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
lar_content::CosmicRayBaseMatchingAlgorithm Class Referenceabstract

CosmicRayBaseMatchingAlgorithm class. More...

#include <CosmicRayBaseMatchingAlgorithm.h>

Inheritance diagram for lar_content::CosmicRayBaseMatchingAlgorithm:
lar_content::CosmicRayShowerMatchingAlgorithm lar_content::CosmicRayTrackMatchingAlgorithm

Classes

class  Particle
 Particle class. More...
 

Protected Types

typedef std::vector< ParticleParticleList
 
typedef std::unordered_map
< const pandora::Cluster
*, pandora::ClusterList > 
ClusterAssociationMap
 
typedef std::set< unsigned int > UIntSet
 

Protected Member Functions

pandora::StatusCode Run ()
 
pandora::StatusCode ReadSettings (const pandora::TiXmlHandle xmlHandle)
 
virtual void SelectCleanClusters (const pandora::ClusterVector &inputVector, pandora::ClusterVector &outputVector) const =0
 Select a set of clusters judged to be clean. More...
 
virtual bool MatchClusters (const pandora::Cluster *const pCluster1, const pandora::Cluster *const pCluster2) const =0
 Match a pair of clusters from two views. More...
 
virtual bool CheckMatchedClusters3D (const pandora::Cluster *const pCluster1, const pandora::Cluster *const pCluster2, const pandora::Cluster *const pCluster3) const =0
 Check that three clusters have a consistent 3D position. More...
 
virtual void SetPfoParameters (const CosmicRayBaseMatchingAlgorithm::Particle &protoParticle, PandoraContentApi::ParticleFlowObject::Parameters &pfoParameters) const =0
 Calculate Pfo properties from proto particle. More...
 

Private Member Functions

pandora::StatusCode GetAvailableClusters (const std::string inputClusterListName, pandora::ClusterVector &clusterVector) const
 Get a vector of available clusters. More...
 
void MatchClusters (const pandora::ClusterVector &clusterVector1, const pandora::ClusterVector &clusterVector2, CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap &matchedClusters12) const
 Match sets of clusters from two views. More...
 
void MatchThreeViews (const CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap &matchedClusters12, const CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap &matchedClusters23, const CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap &matchedClusters31, ParticleList &particleList) const
 Match clusters from three views and form into particles. More...
 
void MatchTwoViews (const CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap &matchedClusters12, const CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap &matchedClusters23, const CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap &matchedClusters31, ParticleList &particleList) const
 Match clusters from two views and form into particles. More...
 
void MatchTwoViews (const CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap &matchedClusters12, ParticleList &particleList) const
 Match clusters from two views and form into particles. More...
 
void ResolveAmbiguities (const ParticleList &inputList, ParticleList &outputList) const
 Remove ambiguities between candidate particles. More...
 
void BuildParticles (const ParticleList &particleList)
 Build PFO objects from candidate particles. More...
 

Private Attributes

std::string m_inputClusterListNameU
 The name of the view U cluster list. More...
 
std::string m_inputClusterListNameV
 The name of the view V cluster list. More...
 
std::string m_inputClusterListNameW
 The name of the view W cluster list. More...
 
std::string m_outputPfoListName
 The name of the output PFO list. More...
 

Detailed Description

CosmicRayBaseMatchingAlgorithm class.

Definition at line 22 of file CosmicRayBaseMatchingAlgorithm.h.

Member Typedef Documentation

typedef std::unordered_map<const pandora::Cluster *, pandora::ClusterList> lar_content::CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap
protected

Definition at line 49 of file CosmicRayBaseMatchingAlgorithm.h.

Definition at line 48 of file CosmicRayBaseMatchingAlgorithm.h.

typedef std::set<unsigned int> lar_content::CosmicRayBaseMatchingAlgorithm::UIntSet
protected

Definition at line 50 of file CosmicRayBaseMatchingAlgorithm.h.

Member Function Documentation

void lar_content::CosmicRayBaseMatchingAlgorithm::BuildParticles ( const ParticleList particleList)
private

Build PFO objects from candidate particles.

Parameters
particleListthe input list of particles

Definition at line 248 of file CosmicRayBaseMatchingAlgorithm.cc.

249 {
250  if (particleList.empty())
251  return;
252 
253  const PfoList *pPfoList = NULL;
254  std::string pfoListName;
255  PANDORA_THROW_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::CreateTemporaryListAndSetCurrent(*this, pPfoList, pfoListName));
256 
257  for (const Particle &particle : particleList)
258  {
259  const Cluster *const pClusterU = particle.m_pClusterU;
260  const Cluster *const pClusterV = particle.m_pClusterV;
261  const Cluster *const pClusterW = particle.m_pClusterW;
262 
263  const bool isAvailableU((NULL != pClusterU) ? pClusterU->IsAvailable() : true);
264  const bool isAvailableV((NULL != pClusterV) ? pClusterV->IsAvailable() : true);
265  const bool isAvailableW((NULL != pClusterW) ? pClusterW->IsAvailable() : true);
266 
267  if (!(isAvailableU && isAvailableV && isAvailableW))
268  throw StatusCodeException(STATUS_CODE_FAILURE);
269 
271  this->SetPfoParameters(particle, pfoParameters);
272 
273  if (pfoParameters.m_clusterList.empty())
274  throw StatusCodeException(STATUS_CODE_FAILURE);
275 
276  const ParticleFlowObject *pPfo(NULL);
277  PANDORA_THROW_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::ParticleFlowObject::Create(*this, pfoParameters, pPfo));
278  }
279 
280  if (!pPfoList->empty())
281  PANDORA_THROW_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::SaveList<Pfo>(*this, m_outputPfoListName));
282 }
virtual void SetPfoParameters(const CosmicRayBaseMatchingAlgorithm::Particle &protoParticle, PandoraContentApi::ParticleFlowObject::Parameters &pfoParameters) const =0
Calculate Pfo properties from proto particle.
std::string m_outputPfoListName
The name of the output PFO list.
fhicl::Table< sbnd::crt::CRTDetSimParams > Parameters
virtual bool lar_content::CosmicRayBaseMatchingAlgorithm::CheckMatchedClusters3D ( const pandora::Cluster *const  pCluster1,
const pandora::Cluster *const  pCluster2,
const pandora::Cluster *const  pCluster3 
) const
protectedpure virtual

Check that three clusters have a consistent 3D position.

Parameters
pCluster1the cluster from the first view
pCluster2the cluster from the second view
pCluster3the cluster from the third view
Returns
boolean

Implemented in lar_content::CosmicRayShowerMatchingAlgorithm, and lar_content::CosmicRayTrackMatchingAlgorithm.

StatusCode lar_content::CosmicRayBaseMatchingAlgorithm::GetAvailableClusters ( const std::string  inputClusterListName,
pandora::ClusterVector &  clusterVector 
) const
private

Get a vector of available clusters.

Parameters
inputClusterListNamethe input name of the cluster list
clusterVectorthe output vector of available clusters

Definition at line 52 of file CosmicRayBaseMatchingAlgorithm.cc.

53 {
54  const ClusterList *pClusterList = NULL;
55  PANDORA_RETURN_RESULT_IF_AND_IF(
56  STATUS_CODE_SUCCESS, STATUS_CODE_NOT_INITIALIZED, !=, PandoraContentApi::GetList(*this, inputClusterListName, pClusterList))
57 
58  if (!pClusterList || pClusterList->empty())
59  {
60  if (PandoraContentApi::GetSettings(*this)->ShouldDisplayAlgorithmInfo())
61  std::cout << "CosmicRayBaseMatchingAlgorithm: unable to find cluster list " << inputClusterListName << std::endl;
62 
63  return STATUS_CODE_SUCCESS;
64  }
65 
66  for (const Cluster *const pCluster : *pClusterList)
67  {
68  if (!pCluster->IsAvailable())
69  continue;
70 
71  clusterVector.push_back(pCluster);
72  }
73 
74  std::sort(clusterVector.begin(), clusterVector.end(), LArClusterHelper::SortByNHits);
75 
76  return STATUS_CODE_SUCCESS;
77 }
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.
then if[["$THISISATEST"==1]]
Definition: neoSmazza.sh:95
bool empty(FixedBins< T, C > const &) noexcept
Definition: FixedBins.h:555
BEGIN_PROLOG could also be cout
virtual bool lar_content::CosmicRayBaseMatchingAlgorithm::MatchClusters ( const pandora::Cluster *const  pCluster1,
const pandora::Cluster *const  pCluster2 
) const
protectedpure virtual

Match a pair of clusters from two views.

Parameters
pCluster1the first cluster
pCluster2the second cluster
Returns
boolean

Implemented in lar_content::CosmicRayShowerMatchingAlgorithm, and lar_content::CosmicRayTrackMatchingAlgorithm.

void lar_content::CosmicRayBaseMatchingAlgorithm::MatchClusters ( const pandora::ClusterVector &  clusterVector1,
const pandora::ClusterVector &  clusterVector2,
CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap matchedClusters12 
) const
private

Match sets of clusters from two views.

Parameters
clusterVector1the vector of clusters from the first view
clusterVector2the vector of clusters from the second view
matchedClusters12the map of cluster matches
void lar_content::CosmicRayBaseMatchingAlgorithm::MatchThreeViews ( const CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap matchedClusters12,
const CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap matchedClusters23,
const CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap matchedClusters31,
ParticleList particleList 
) const
private

Match clusters from three views and form into particles.

Parameters
matchedClusters12the map of matches between the view 1 and view 2
matchedClusters23the map of matches between the view 2 and view 3
matchedClusters31the map of matches between the view 3 and view 1
particleListthe output list of particles

Definition at line 112 of file CosmicRayBaseMatchingAlgorithm.cc.

114 {
115  if (matchedClusters12.empty() || matchedClusters23.empty() || matchedClusters31.empty())
116  return;
117 
118  ParticleList candidateParticles;
119 
120  ClusterList clusterList1;
121  for (const auto &mapEntry : matchedClusters12)
122  clusterList1.push_back(mapEntry.first);
123  clusterList1.sort(LArClusterHelper::SortByNHits);
124 
125  for (const Cluster *const pCluster1 : clusterList1)
126  {
127  const ClusterList &clusterList2(matchedClusters12.at(pCluster1));
128 
129  for (const Cluster *const pCluster2 : clusterList2)
130  {
131  ClusterAssociationMap::const_iterator iter23 = matchedClusters23.find(pCluster2);
132 
133  if (matchedClusters23.end() == iter23)
134  continue;
135 
136  const ClusterList &clusterList3 = iter23->second;
137 
138  for (const Cluster *const pCluster3 : clusterList3)
139  {
140  ClusterAssociationMap::const_iterator iter31 = matchedClusters31.find(pCluster3);
141 
142  if (matchedClusters31.end() == iter31)
143  continue;
144 
145  if (iter31->second.end() == std::find(iter31->second.begin(), iter31->second.end(), pCluster1))
146  continue;
147 
148  const HitType hitType1(LArClusterHelper::GetClusterHitType(pCluster1));
149  const HitType hitType2(LArClusterHelper::GetClusterHitType(pCluster2));
150  const HitType hitType3(LArClusterHelper::GetClusterHitType(pCluster3));
151 
152  if (!this->CheckMatchedClusters3D(pCluster1, pCluster2, pCluster3))
153  continue;
154 
155  const Cluster *const pClusterU(
156  (TPC_VIEW_U == hitType1) ? pCluster1 : (TPC_VIEW_U == hitType2) ? pCluster2 : (TPC_VIEW_U == hitType3) ? pCluster3 : NULL);
157  const Cluster *const pClusterV(
158  (TPC_VIEW_V == hitType1) ? pCluster1 : (TPC_VIEW_V == hitType2) ? pCluster2 : (TPC_VIEW_V == hitType3) ? pCluster3 : NULL);
159  const Cluster *const pClusterW(
160  (TPC_VIEW_W == hitType1) ? pCluster1 : (TPC_VIEW_W == hitType2) ? pCluster2 : (TPC_VIEW_W == hitType3) ? pCluster3 : NULL);
161 
162  candidateParticles.push_back(Particle(pClusterU, pClusterV, pClusterW));
163  }
164  }
165  }
166 
167  return this->ResolveAmbiguities(candidateParticles, matchedParticles);
168 }
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.
static pandora::HitType GetClusterHitType(const pandora::Cluster *const pCluster)
Get the hit type associated with a two dimensional cluster.
virtual bool CheckMatchedClusters3D(const pandora::Cluster *const pCluster1, const pandora::Cluster *const pCluster2, const pandora::Cluster *const pCluster3) const =0
Check that three clusters have a consistent 3D position.
void ResolveAmbiguities(const ParticleList &inputList, ParticleList &outputList) const
Remove ambiguities between candidate particles.
void lar_content::CosmicRayBaseMatchingAlgorithm::MatchTwoViews ( const CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap matchedClusters12,
const CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap matchedClusters23,
const CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap matchedClusters31,
ParticleList particleList 
) const
private

Match clusters from two views and form into particles.

Parameters
matchedClusters12the map of matches between the view 1 and view 2
matchedClusters23the map of matches between the view 2 and view 3
matchedClusters31the map of matches between the view 3 and view 1
particleListthe output list of particles

Definition at line 172 of file CosmicRayBaseMatchingAlgorithm.cc.

174 {
175  ParticleList candidateParticles;
176  this->MatchTwoViews(matchedClusters12, candidateParticles);
177  this->MatchTwoViews(matchedClusters23, candidateParticles);
178  this->MatchTwoViews(matchedClusters31, candidateParticles);
179 
180  return this->ResolveAmbiguities(candidateParticles, matchedParticles);
181 }
void MatchTwoViews(const CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap &matchedClusters12, const CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap &matchedClusters23, const CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap &matchedClusters31, ParticleList &particleList) const
Match clusters from two views and form into particles.
void ResolveAmbiguities(const ParticleList &inputList, ParticleList &outputList) const
Remove ambiguities between candidate particles.
void lar_content::CosmicRayBaseMatchingAlgorithm::MatchTwoViews ( const CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap matchedClusters12,
ParticleList particleList 
) const
private

Match clusters from two views and form into particles.

Parameters
matchedClusters12the map of matches between the first and second views
particleListthe output list of particles

Definition at line 185 of file CosmicRayBaseMatchingAlgorithm.cc.

186 {
187  if (matchedClusters12.empty())
188  return;
189 
190  ClusterList clusterList1;
191  for (const auto &mapEntry : matchedClusters12)
192  clusterList1.push_back(mapEntry.first);
193  clusterList1.sort(LArClusterHelper::SortByNHits);
194 
195  for (const Cluster *const pCluster1 : clusterList1)
196  {
197  const ClusterList &clusterList2(matchedClusters12.at(pCluster1));
198 
199  for (const Cluster *const pCluster2 : clusterList2)
200  {
201  const HitType hitType1(LArClusterHelper::GetClusterHitType(pCluster1));
202  const HitType hitType2(LArClusterHelper::GetClusterHitType(pCluster2));
203 
204  const Cluster *const pClusterU((TPC_VIEW_U == hitType1) ? pCluster1 : (TPC_VIEW_U == hitType2) ? pCluster2 : NULL);
205  const Cluster *const pClusterV((TPC_VIEW_V == hitType1) ? pCluster1 : (TPC_VIEW_V == hitType2) ? pCluster2 : NULL);
206  const Cluster *const pClusterW((TPC_VIEW_W == hitType1) ? pCluster1 : (TPC_VIEW_W == hitType2) ? pCluster2 : NULL);
207 
208  matchedParticles.push_back(Particle(pClusterU, pClusterV, pClusterW));
209  }
210  }
211 }
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.
static pandora::HitType GetClusterHitType(const pandora::Cluster *const pCluster)
Get the hit type associated with a two dimensional cluster.
StatusCode lar_content::CosmicRayBaseMatchingAlgorithm::ReadSettings ( const pandora::TiXmlHandle  xmlHandle)
protected

Definition at line 304 of file CosmicRayBaseMatchingAlgorithm.cc.

305 {
306  PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, XmlHelper::ReadValue(xmlHandle, "OutputPfoListName", m_outputPfoListName));
307  PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, XmlHelper::ReadValue(xmlHandle, "InputClusterListNameU", m_inputClusterListNameU));
308  PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, XmlHelper::ReadValue(xmlHandle, "InputClusterListNameV", m_inputClusterListNameV));
309  PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, XmlHelper::ReadValue(xmlHandle, "InputClusterListNameW", m_inputClusterListNameW));
310 
311  return STATUS_CODE_SUCCESS;
312 }
std::string m_inputClusterListNameV
The name of the view V cluster list.
std::string m_outputPfoListName
The name of the output PFO list.
std::string m_inputClusterListNameU
The name of the view U cluster list.
std::string m_inputClusterListNameW
The name of the view W cluster list.
void lar_content::CosmicRayBaseMatchingAlgorithm::ResolveAmbiguities ( const ParticleList inputList,
ParticleList outputList 
) const
private

Remove ambiguities between candidate particles.

Parameters
inputListthe input list of particles
outputListthe output list of particles

Definition at line 215 of file CosmicRayBaseMatchingAlgorithm.cc.

216 {
217  for (const Particle &particle1 : candidateParticles)
218  {
219  bool isGoodMatch(true);
220 
221  for (const Particle &particle2 : candidateParticles)
222  {
223  const bool commonU(particle1.m_pClusterU == particle2.m_pClusterU);
224  const bool commonV(particle1.m_pClusterV == particle2.m_pClusterV);
225  const bool commonW(particle1.m_pClusterW == particle2.m_pClusterW);
226 
227  const bool ambiguousU(commonU && NULL != particle1.m_pClusterU);
228  const bool ambiguousV(commonV && NULL != particle1.m_pClusterV);
229  const bool ambiguousW(commonW && NULL != particle1.m_pClusterW);
230 
231  if (commonU && commonV && commonW)
232  continue;
233 
234  if (ambiguousU || ambiguousV || ambiguousW)
235  {
236  isGoodMatch = false;
237  break;
238  }
239  }
240 
241  if (isGoodMatch)
242  matchedParticles.push_back(particle1);
243  }
244 }
StatusCode lar_content::CosmicRayBaseMatchingAlgorithm::Run ( )
protected

Definition at line 21 of file CosmicRayBaseMatchingAlgorithm.cc.

22 {
23  // Get the available clusters for each view
24  ClusterVector availableClustersU, availableClustersV, availableClustersW;
25  PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, this->GetAvailableClusters(m_inputClusterListNameU, availableClustersU));
26  PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, this->GetAvailableClusters(m_inputClusterListNameV, availableClustersV));
27  PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, this->GetAvailableClusters(m_inputClusterListNameW, availableClustersW));
28 
29  // Select clean clusters in each view
30  ClusterVector cleanClustersU, cleanClustersV, cleanClustersW;
31  this->SelectCleanClusters(availableClustersU, cleanClustersU);
32  this->SelectCleanClusters(availableClustersV, cleanClustersV);
33  this->SelectCleanClusters(availableClustersW, cleanClustersW);
34 
35  // Build associations between pairs of views
36  ClusterAssociationMap matchedClusterUV, matchedClusterVW, matchedClusterWU;
37  this->MatchClusters(cleanClustersU, cleanClustersV, matchedClusterUV);
38  this->MatchClusters(cleanClustersV, cleanClustersW, matchedClusterVW);
39  this->MatchClusters(cleanClustersW, cleanClustersU, matchedClusterWU);
40 
41  // Build particles from associations
42  ParticleList particleList;
43  this->MatchThreeViews(matchedClusterUV, matchedClusterVW, matchedClusterWU, particleList);
44  this->MatchTwoViews(matchedClusterUV, matchedClusterVW, matchedClusterWU, particleList);
45  this->BuildParticles(particleList);
46 
47  return STATUS_CODE_SUCCESS;
48 }
std::string m_inputClusterListNameV
The name of the view V cluster list.
void BuildParticles(const ParticleList &particleList)
Build PFO objects from candidate particles.
void MatchThreeViews(const CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap &matchedClusters12, const CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap &matchedClusters23, const CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap &matchedClusters31, ParticleList &particleList) const
Match clusters from three views and form into particles.
virtual void SelectCleanClusters(const pandora::ClusterVector &inputVector, pandora::ClusterVector &outputVector) const =0
Select a set of clusters judged to be clean.
void MatchTwoViews(const CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap &matchedClusters12, const CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap &matchedClusters23, const CosmicRayBaseMatchingAlgorithm::ClusterAssociationMap &matchedClusters31, ParticleList &particleList) const
Match clusters from two views and form into particles.
pandora::StatusCode GetAvailableClusters(const std::string inputClusterListName, pandora::ClusterVector &clusterVector) const
Get a vector of available clusters.
std::string m_inputClusterListNameU
The name of the view U cluster list.
std::string m_inputClusterListNameW
The name of the view W cluster list.
std::vector< art::Ptr< recob::Cluster > > ClusterVector
std::unordered_map< const pandora::Cluster *, pandora::ClusterList > ClusterAssociationMap
virtual bool MatchClusters(const pandora::Cluster *const pCluster1, const pandora::Cluster *const pCluster2) const =0
Match a pair of clusters from two views.
virtual void lar_content::CosmicRayBaseMatchingAlgorithm::SelectCleanClusters ( const pandora::ClusterVector &  inputVector,
pandora::ClusterVector &  outputVector 
) const
protectedpure virtual

Select a set of clusters judged to be clean.

Parameters
inputVectorthe input vector of all available clusters
outputVectorthe output vector of clean clusters

Implemented in lar_content::CosmicRayShowerMatchingAlgorithm, and lar_content::CosmicRayTrackMatchingAlgorithm.

virtual void lar_content::CosmicRayBaseMatchingAlgorithm::SetPfoParameters ( const CosmicRayBaseMatchingAlgorithm::Particle protoParticle,
PandoraContentApi::ParticleFlowObject::Parameters pfoParameters 
) const
protectedpure virtual

Calculate Pfo properties from proto particle.

Parameters
protoParticlethe input proto particle
pfoParametersthe output pfo parameters

Implemented in lar_content::CosmicRayShowerMatchingAlgorithm, and lar_content::CosmicRayTrackMatchingAlgorithm.

Member Data Documentation

std::string lar_content::CosmicRayBaseMatchingAlgorithm::m_inputClusterListNameU
private

The name of the view U cluster list.

Definition at line 156 of file CosmicRayBaseMatchingAlgorithm.h.

std::string lar_content::CosmicRayBaseMatchingAlgorithm::m_inputClusterListNameV
private

The name of the view V cluster list.

Definition at line 157 of file CosmicRayBaseMatchingAlgorithm.h.

std::string lar_content::CosmicRayBaseMatchingAlgorithm::m_inputClusterListNameW
private

The name of the view W cluster list.

Definition at line 158 of file CosmicRayBaseMatchingAlgorithm.h.

std::string lar_content::CosmicRayBaseMatchingAlgorithm::m_outputPfoListName
private

The name of the output PFO list.

Definition at line 159 of file CosmicRayBaseMatchingAlgorithm.h.


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