LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
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

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.

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 254 of file CosmicRayBaseMatchingAlgorithm.cc.

255 {
256  if (particleList.empty())
257  return;
258 
259  const PfoList *pPfoList = NULL;
260  std::string pfoListName;
261  PANDORA_THROW_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::CreateTemporaryListAndSetCurrent(*this, pPfoList, pfoListName));
262 
263  for (const Particle &particle : particleList)
264  {
265  const Cluster *const pClusterU = particle.m_pClusterU;
266  const Cluster *const pClusterV = particle.m_pClusterV;
267  const Cluster *const pClusterW = particle.m_pClusterW;
268 
269  const bool isAvailableU((NULL != pClusterU) ? pClusterU->IsAvailable() : true);
270  const bool isAvailableV((NULL != pClusterV) ? pClusterV->IsAvailable() : true);
271  const bool isAvailableW((NULL != pClusterW) ? pClusterW->IsAvailable() : true);
272 
273  if (!(isAvailableU && isAvailableV && isAvailableW))
274  throw StatusCodeException(STATUS_CODE_FAILURE);
275 
276  PandoraContentApi::ParticleFlowObject::Parameters pfoParameters;
277  this->SetPfoParameters(particle, pfoParameters);
278 
279  if (pfoParameters.m_clusterList.empty())
280  throw StatusCodeException(STATUS_CODE_FAILURE);
281 
282  const ParticleFlowObject *pPfo(NULL);
283  PANDORA_THROW_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::ParticleFlowObject::Create(*this, pfoParameters, pPfo));
284  }
285 
286  if (!pPfoList->empty())
287  PANDORA_THROW_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::SaveList<Pfo>(*this, m_outputPfoListName));
288 }
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.
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.
if(nlines<=0)
decltype(auto) constexpr empty(T &&obj)
ADL-aware version of std::empty.
Definition: StdUtils.h:109
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((TPC_VIEW_U == hitType1) ? pCluster1
156  : (TPC_VIEW_U == hitType2) ? pCluster2
157  : (TPC_VIEW_U == hitType3) ? pCluster3
158  : NULL);
159  const Cluster *const pClusterV((TPC_VIEW_V == hitType1) ? pCluster1
160  : (TPC_VIEW_V == hitType2) ? pCluster2
161  : (TPC_VIEW_V == hitType3) ? pCluster3
162  : NULL);
163  const Cluster *const pClusterW((TPC_VIEW_W == hitType1) ? pCluster1
164  : (TPC_VIEW_W == hitType2) ? pCluster2
165  : (TPC_VIEW_W == hitType3) ? pCluster3
166  : NULL);
167 
168  candidateParticles.push_back(Particle(pClusterU, pClusterV, pClusterW));
169  }
170  }
171  }
172 
173  return this->ResolveAmbiguities(candidateParticles, matchedParticles);
174 }
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.
intermediate_table::const_iterator const_iterator
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.
HitType
Definition: HitType.h:12
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 178 of file CosmicRayBaseMatchingAlgorithm.cc.

180 {
181  ParticleList candidateParticles;
182  this->MatchTwoViews(matchedClusters12, candidateParticles);
183  this->MatchTwoViews(matchedClusters23, candidateParticles);
184  this->MatchTwoViews(matchedClusters31, candidateParticles);
185 
186  return this->ResolveAmbiguities(candidateParticles, matchedParticles);
187 }
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 191 of file CosmicRayBaseMatchingAlgorithm.cc.

192 {
193  if (matchedClusters12.empty())
194  return;
195 
196  ClusterList clusterList1;
197  for (const auto &mapEntry : matchedClusters12)
198  clusterList1.push_back(mapEntry.first);
199  clusterList1.sort(LArClusterHelper::SortByNHits);
200 
201  for (const Cluster *const pCluster1 : clusterList1)
202  {
203  const ClusterList &clusterList2(matchedClusters12.at(pCluster1));
204 
205  for (const Cluster *const pCluster2 : clusterList2)
206  {
207  const HitType hitType1(LArClusterHelper::GetClusterHitType(pCluster1));
208  const HitType hitType2(LArClusterHelper::GetClusterHitType(pCluster2));
209 
210  const Cluster *const pClusterU((TPC_VIEW_U == hitType1) ? pCluster1 : (TPC_VIEW_U == hitType2) ? pCluster2 : NULL);
211  const Cluster *const pClusterV((TPC_VIEW_V == hitType1) ? pCluster1 : (TPC_VIEW_V == hitType2) ? pCluster2 : NULL);
212  const Cluster *const pClusterW((TPC_VIEW_W == hitType1) ? pCluster1 : (TPC_VIEW_W == hitType2) ? pCluster2 : NULL);
213 
214  matchedParticles.push_back(Particle(pClusterU, pClusterV, pClusterW));
215  }
216  }
217 }
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.
HitType
Definition: HitType.h:12
StatusCode lar_content::CosmicRayBaseMatchingAlgorithm::ReadSettings ( const pandora::TiXmlHandle  xmlHandle)
protected

Definition at line 310 of file CosmicRayBaseMatchingAlgorithm.cc.

References m_inputClusterListNameU, m_inputClusterListNameV, m_inputClusterListNameW, and m_outputPfoListName.

Referenced by lar_content::CosmicRayShowerMatchingAlgorithm::ReadSettings(), and lar_content::CosmicRayTrackMatchingAlgorithm::ReadSettings().

311 {
312  PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, XmlHelper::ReadValue(xmlHandle, "OutputPfoListName", m_outputPfoListName));
313  PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, XmlHelper::ReadValue(xmlHandle, "InputClusterListNameU", m_inputClusterListNameU));
314  PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, XmlHelper::ReadValue(xmlHandle, "InputClusterListNameV", m_inputClusterListNameV));
315  PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, XmlHelper::ReadValue(xmlHandle, "InputClusterListNameW", m_inputClusterListNameW));
316 
317  return STATUS_CODE_SUCCESS;
318 }
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 221 of file CosmicRayBaseMatchingAlgorithm.cc.

222 {
223  for (const Particle &particle1 : candidateParticles)
224  {
225  bool isGoodMatch(true);
226 
227  for (const Particle &particle2 : candidateParticles)
228  {
229  const bool commonU(particle1.m_pClusterU == particle2.m_pClusterU);
230  const bool commonV(particle1.m_pClusterV == particle2.m_pClusterV);
231  const bool commonW(particle1.m_pClusterW == particle2.m_pClusterW);
232 
233  const bool ambiguousU(commonU && NULL != particle1.m_pClusterU);
234  const bool ambiguousV(commonV && NULL != particle1.m_pClusterV);
235  const bool ambiguousW(commonW && NULL != particle1.m_pClusterW);
236 
237  if (commonU && commonV && commonW)
238  continue;
239 
240  if (ambiguousU || ambiguousV || ambiguousW)
241  {
242  isGoodMatch = false;
243  break;
244  }
245  }
246 
247  if (isGoodMatch)
248  matchedParticles.push_back(particle1);
249  }
250 }
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 bool MatchClusters(const pandora::Cluster *const pCluster1, const pandora::Cluster *const pCluster2) const =0
Match a pair of clusters from two views.
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 void SelectCleanClusters(const pandora::ClusterVector &inputVector, pandora::ClusterVector &outputVector) const =0
Select a set of clusters judged to be clean.
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.

Referenced by ReadSettings().

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

The name of the view V cluster list.

Definition at line 157 of file CosmicRayBaseMatchingAlgorithm.h.

Referenced by ReadSettings().

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

The name of the view W cluster list.

Definition at line 158 of file CosmicRayBaseMatchingAlgorithm.h.

Referenced by ReadSettings().

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

The name of the output PFO list.

Definition at line 159 of file CosmicRayBaseMatchingAlgorithm.h.

Referenced by ReadSettings().


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