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

CheatingPfoCreationAlgorithm class. More...

#include "CheatingPfoCreationAlgorithm.h"

Inheritance diagram for lar_content::CheatingPfoCreationAlgorithm:

Public Member Functions

 CheatingPfoCreationAlgorithm ()
 Default constructor. More...
 

Private Types

typedef std::unordered_map< const pandora::MCParticle *, pandora::ClusterList > MCParticleToClusterListMap
 
typedef std::map< pandora::HitType, unsigned int > HitTypeMap
 
typedef std::set< int > ParticleIdList
 

Private Member Functions

pandora::StatusCode Run ()
 
pandora::StatusCode ReadSettings (const pandora::TiXmlHandle xmlHandle)
 
void GetMCParticleToClusterListMap (const pandora::ClusterList *const pClusterList, const LArMCParticleHelper::MCRelationMap &mcPrimaryMap, MCParticleToClusterListMap &mcParticleToClusterListMap) const
 Get a map relating mc particles to a list of daughter clusters. More...
 
void CreatePfos (const MCParticleToClusterListMap &mcParticleToClusterListMap) const
 Create pfos corresponding to the details in a provided mc particle to cluster list map. More...
 
unsigned int GetNHitTypesAboveThreshold (const pandora::ClusterList &clusterList, const unsigned int nHitsThreshold) const
 Get the number of hit types containing more than a specified number of hits. More...
 
bool IsTrack (const pandora::MCParticle *const pMCParticle) const
 Determine whether an input MCParticle is a track-like particle. More...
 
bool IsShower (const pandora::MCParticle *const pMCParticle) const
 Determine whether an input MCParticle is a shower-like particle. More...
 

Private Attributes

pandora::StringVector m_inputClusterListNames
 The names of the input cluster lists. More...
 
std::string m_outputPfoListName
 The output pfo list name. More...
 
std::string m_outputVertexListName
 The output vertex list name. More...
 
bool m_collapseToPrimaryMCParticles
 Whether to collapse mc particle hierarchies to primary particles. More...
 
std::string m_mcParticleListName
 The mc particle list name. More...
 
bool m_useOnlyAvailableClusters
 Whether to consider unavailable clusters when identifying cheated pfos. More...
 
bool m_addVertices
 Whether to add the start vertex to the cheated pfo. More...
 
bool m_replaceCurrentVertexList
 Whether to replace current vertex list. More...
 
unsigned int m_minGoodHitTypes
 The min number of good hit types in the clusters collected for a given mc particle. More...
 
unsigned int m_nHitsForGoodHitType
 The min number of hits of a particular hit type in order to declare the hit type is good. More...
 
ParticleIdList m_particleIdList
 The list of particle ids to consider for pfo creation; will consider all ids if empty. More...
 

Detailed Description

Member Typedef Documentation

typedef std::map<pandora::HitType, unsigned int> lar_content::CheatingPfoCreationAlgorithm::HitTypeMap
private

Definition at line 82 of file CheatingPfoCreationAlgorithm.h.

typedef std::unordered_map<const pandora::MCParticle *, pandora::ClusterList> lar_content::CheatingPfoCreationAlgorithm::MCParticleToClusterListMap
private

Definition at line 35 of file CheatingPfoCreationAlgorithm.h.

Definition at line 83 of file CheatingPfoCreationAlgorithm.h.

Constructor & Destructor Documentation

lar_content::CheatingPfoCreationAlgorithm::CheatingPfoCreationAlgorithm ( )

Default constructor.

Definition at line 20 of file CheatingPfoCreationAlgorithm.cc.

20  :
23  m_addVertices(true),
27 {
28 }
unsigned int m_minGoodHitTypes
The min number of good hit types in the clusters collected for a given mc particle.
unsigned int m_nHitsForGoodHitType
The min number of hits of a particular hit type in order to declare the hit type is good...
bool m_addVertices
Whether to add the start vertex to the cheated pfo.
bool m_useOnlyAvailableClusters
Whether to consider unavailable clusters when identifying cheated pfos.
bool m_collapseToPrimaryMCParticles
Whether to collapse mc particle hierarchies to primary particles.
bool m_replaceCurrentVertexList
Whether to replace current vertex list.

Member Function Documentation

void lar_content::CheatingPfoCreationAlgorithm::CreatePfos ( const MCParticleToClusterListMap mcParticleToClusterListMap) const
private

Create pfos corresponding to the details in a provided mc particle to cluster list map.

Parameters
mcParticleToClusterListMapthe mc particle to cluster list map

Definition at line 102 of file CheatingPfoCreationAlgorithm.cc.

References GetNHitTypesAboveThreshold(), IsShower(), m_addVertices, m_minGoodHitTypes, m_nHitsForGoodHitType, m_outputPfoListName, m_outputVertexListName, m_replaceCurrentVertexList, and lar_content::LArMCParticleHelper::SortByMomentum().

Referenced by Run().

103 {
104  if (mcParticleToClusterListMap.empty())
105  return;
106 
107  const PfoList *pPfoList(nullptr);
108  std::string pfoListName;
109  PANDORA_THROW_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::CreateTemporaryListAndSetCurrent(*this, pPfoList, pfoListName));
110 
111  const VertexList *pVertexList(nullptr);
112  std::string vertexListName;
113  PANDORA_THROW_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::CreateTemporaryListAndSetCurrent(*this, pVertexList, vertexListName));
114 
115  MCParticleVector mcParticleVector;
116  for (const auto &mapEntry : mcParticleToClusterListMap)
117  mcParticleVector.push_back(mapEntry.first);
118  std::sort(mcParticleVector.begin(), mcParticleVector.end(), LArMCParticleHelper::SortByMomentum);
119 
120  for (const MCParticle *const pMCParticle : mcParticleVector)
121  {
122  const ClusterList &clusterList(mcParticleToClusterListMap.at(pMCParticle));
123 
124  if (clusterList.empty())
125  continue;
126 
128  continue;
129 
130  try
131  {
132  PandoraContentApi::ParticleFlowObject::Parameters pfoParameters;
133  pfoParameters.m_particleId = (this->IsShower(pMCParticle) ? E_MINUS : MU_MINUS);
134  pfoParameters.m_charge = PdgTable::GetParticleCharge(pfoParameters.m_particleId.Get());
135  pfoParameters.m_mass = PdgTable::GetParticleMass(pfoParameters.m_particleId.Get());
136  pfoParameters.m_energy = pMCParticle->GetEnergy();
137  pfoParameters.m_momentum = pMCParticle->GetMomentum();
138  pfoParameters.m_clusterList.insert(pfoParameters.m_clusterList.end(), clusterList.begin(), clusterList.end());
139 
140  const ParticleFlowObject *pPfo(nullptr);
141  PANDORA_THROW_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::ParticleFlowObject::Create(*this, pfoParameters, pPfo));
142 
143  if (m_addVertices)
144  {
145  PandoraContentApi::Vertex::Parameters parameters;
146  parameters.m_position = pMCParticle->GetVertex();
147  parameters.m_vertexLabel = VERTEX_START;
148  parameters.m_vertexType = VERTEX_3D;
149 
150  const Vertex *pVertex(nullptr);
151  PANDORA_THROW_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::Vertex::Create(*this, parameters, pVertex));
152  PANDORA_THROW_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::AddToPfo<Vertex>(*this, pPfo, pVertex));
153  }
154  }
155  catch (const StatusCodeException &)
156  {
157  std::cout << "CheatingPfoCreationAlgorithm: Could not create PFO for MCParticle with pdg code " << pMCParticle->GetParticleId()
158  << std::endl;
159  }
160  }
161 
162  if (!pPfoList->empty())
163  {
164  PANDORA_THROW_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::SaveList<Pfo>(*this, m_outputPfoListName));
165  PANDORA_THROW_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::ReplaceCurrentList<Pfo>(*this, m_outputPfoListName));
166  }
167 
168  if (!pVertexList->empty())
169  {
170  PANDORA_THROW_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::SaveList<Vertex>(*this, m_outputVertexListName));
171 
173  PANDORA_THROW_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::ReplaceCurrentList<Vertex>(*this, m_outputVertexListName));
174  }
175 }
bool IsShower(const pandora::MCParticle *const pMCParticle) const
Determine whether an input MCParticle is a shower-like particle.
std::string m_outputVertexListName
The output vertex list name.
unsigned int m_minGoodHitTypes
The min number of good hit types in the clusters collected for a given mc particle.
static bool SortByMomentum(const pandora::MCParticle *const pLhs, const pandora::MCParticle *const pRhs)
Sort mc particles by their momentum.
std::string m_outputPfoListName
The output pfo list name.
unsigned int m_nHitsForGoodHitType
The min number of hits of a particular hit type in order to declare the hit type is good...
std::vector< art::Ptr< simb::MCParticle > > MCParticleVector
bool m_addVertices
Whether to add the start vertex to the cheated pfo.
unsigned int GetNHitTypesAboveThreshold(const pandora::ClusterList &clusterList, const unsigned int nHitsThreshold) const
Get the number of hit types containing more than a specified number of hits.
bool m_replaceCurrentVertexList
Whether to replace current vertex list.
boost::graph_traits< ModuleGraph >::vertex_descriptor Vertex
Definition: ModuleGraph.h:25
std::list< Vertex > VertexList
Definition: DCEL.h:169
void lar_content::CheatingPfoCreationAlgorithm::GetMCParticleToClusterListMap ( const pandora::ClusterList *const  pClusterList,
const LArMCParticleHelper::MCRelationMap mcPrimaryMap,
MCParticleToClusterListMap mcParticleToClusterListMap 
) const
private

Get a map relating mc particles to a list of daughter clusters.

Parameters
pClusterListaddress of a cluster list
mcPrimaryMapthe mapping between mc particles and their parents
mcParticleToClusterListMapto receive the populated mc particle to cluster list map

Definition at line 67 of file CheatingPfoCreationAlgorithm.cc.

References m_collapseToPrimaryMCParticles, m_particleIdList, and m_useOnlyAvailableClusters.

Referenced by Run().

69 {
70  for (const Cluster *const pCluster : *pClusterList)
71  {
72  try
73  {
74  if (m_useOnlyAvailableClusters && !PandoraContentApi::IsAvailable(*this, pCluster))
75  continue;
76 
77  const MCParticle *pMCParticle(MCParticleHelper::GetMainMCParticle(pCluster));
78 
80  {
81  LArMCParticleHelper::MCRelationMap::const_iterator primaryIter = mcPrimaryMap.find(pMCParticle);
82 
83  if (mcPrimaryMap.end() == primaryIter)
84  throw StatusCodeException(STATUS_CODE_NOT_FOUND);
85 
86  pMCParticle = primaryIter->second;
87  }
88 
89  if (!m_particleIdList.empty() && !m_particleIdList.count(pMCParticle->GetParticleId()))
90  continue;
91 
92  mcParticleToClusterListMap[pMCParticle].push_back(pCluster);
93  }
94  catch (const StatusCodeException &)
95  {
96  }
97  }
98 }
intermediate_table::const_iterator const_iterator
bool m_useOnlyAvailableClusters
Whether to consider unavailable clusters when identifying cheated pfos.
ParticleIdList m_particleIdList
The list of particle ids to consider for pfo creation; will consider all ids if empty.
bool m_collapseToPrimaryMCParticles
Whether to collapse mc particle hierarchies to primary particles.
unsigned int lar_content::CheatingPfoCreationAlgorithm::GetNHitTypesAboveThreshold ( const pandora::ClusterList &  clusterList,
const unsigned int  nHitsThreshold 
) const
private

Get the number of hit types containing more than a specified number of hits.

Parameters
clusterListthe cluster list, consider all hits in clusters in this list
nHitsThresholdthe threshold number of hits of a specified hit type
Returns
the number of good hit types

Definition at line 179 of file CheatingPfoCreationAlgorithm.cc.

References lar_content::LArClusterHelper::GetClusterHitType().

Referenced by CreatePfos().

180 {
181  HitTypeMap hitTypeMap;
182 
183  for (const Cluster *const pCluster : clusterList)
184  {
185  hitTypeMap[LArClusterHelper::GetClusterHitType(pCluster)] += pCluster->GetNCaloHits();
186  }
187 
188  unsigned int nGoodViews(0);
189 
190  for (const HitTypeMap::value_type &mapEntry : hitTypeMap)
191  {
192  if (mapEntry.second > nHitsThreshold)
193  ++nGoodViews;
194  }
195 
196  return nGoodViews;
197 }
static pandora::HitType GetClusterHitType(const pandora::Cluster *const pCluster)
Get the hit type associated with a two dimensional cluster.
std::map< pandora::HitType, unsigned int > HitTypeMap
bool lar_content::CheatingPfoCreationAlgorithm::IsShower ( const pandora::MCParticle *const  pMCParticle) const
private

Determine whether an input MCParticle is a shower-like particle.

Parameters
pMCParticlethe input MCParticle
Returns
whether an input MCParticle is a shower-like particle

Definition at line 210 of file CheatingPfoCreationAlgorithm.cc.

References util::abs().

Referenced by CreatePfos().

211 {
212  const int pdg(pMCParticle->GetParticleId());
213 
214  return ((E_MINUS == std::abs(pdg)) || (PHOTON == std::abs(pdg)));
215 }
constexpr auto abs(T v)
Returns the absolute value of the argument.
bool lar_content::CheatingPfoCreationAlgorithm::IsTrack ( const pandora::MCParticle *const  pMCParticle) const
private

Determine whether an input MCParticle is a track-like particle.

Parameters
pMCParticlethe input MCParticle
Returns
whether an input MCParticle is a track-like particle

Definition at line 201 of file CheatingPfoCreationAlgorithm.cc.

References util::abs().

202 {
203  const int pdg(pMCParticle->GetParticleId());
204 
205  return ((MU_MINUS == std::abs(pdg)) || (PI_PLUS == std::abs(pdg)) || (PROTON == std::abs(pdg)) || (K_PLUS == std::abs(pdg)));
206 }
constexpr auto abs(T v)
Returns the absolute value of the argument.
StatusCode lar_content::CheatingPfoCreationAlgorithm::ReadSettings ( const pandora::TiXmlHandle  xmlHandle)
private

Definition at line 219 of file CheatingPfoCreationAlgorithm.cc.

References m_addVertices, m_collapseToPrimaryMCParticles, m_inputClusterListNames, m_mcParticleListName, m_minGoodHitTypes, m_nHitsForGoodHitType, m_outputPfoListName, m_outputVertexListName, m_particleIdList, m_replaceCurrentVertexList, and m_useOnlyAvailableClusters.

220 {
221  PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, XmlHelper::ReadVectorOfValues(xmlHandle, "InputClusterListNames", m_inputClusterListNames));
222 
223  PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, XmlHelper::ReadValue(xmlHandle, "OutputPfoListName", m_outputPfoListName));
224 
225  PANDORA_RETURN_RESULT_IF_AND_IF(STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=,
226  XmlHelper::ReadValue(xmlHandle, "CollapseToPrimaryMCParticles", m_collapseToPrimaryMCParticles));
227 
229  {
230  PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, XmlHelper::ReadValue(xmlHandle, "MCParticleListName", m_mcParticleListName));
231  }
232 
233  PANDORA_RETURN_RESULT_IF_AND_IF(STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=,
234  XmlHelper::ReadValue(xmlHandle, "UseOnlyAvailableClusters", m_useOnlyAvailableClusters));
235 
236  PANDORA_RETURN_RESULT_IF_AND_IF(STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle, "AddVertices", m_addVertices));
237 
238  if (m_addVertices)
239  {
240  PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, XmlHelper::ReadValue(xmlHandle, "OutputVertexListName", m_outputVertexListName));
241 
242  PANDORA_RETURN_RESULT_IF_AND_IF(STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=,
243  XmlHelper::ReadValue(xmlHandle, "ReplaceCurrentVertexList", m_replaceCurrentVertexList));
244  }
245 
246  IntVector particleIdVector;
247  PANDORA_RETURN_RESULT_IF_AND_IF(
248  STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadVectorOfValues(xmlHandle, "ParticleIdList", particleIdVector));
249 
250  m_particleIdList.insert(particleIdVector.begin(), particleIdVector.end());
251 
252  PANDORA_RETURN_RESULT_IF_AND_IF(STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle, "MinGoodHitTypes", m_minGoodHitTypes));
253 
254  PANDORA_RETURN_RESULT_IF_AND_IF(
255  STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle, "NHitsForGoodHitType", m_nHitsForGoodHitType));
256 
257  return STATUS_CODE_SUCCESS;
258 }
std::string m_mcParticleListName
The mc particle list name.
pandora::StringVector m_inputClusterListNames
The names of the input cluster lists.
std::string m_outputVertexListName
The output vertex list name.
unsigned int m_minGoodHitTypes
The min number of good hit types in the clusters collected for a given mc particle.
std::vector< int > IntVector
std::string m_outputPfoListName
The output pfo list name.
unsigned int m_nHitsForGoodHitType
The min number of hits of a particular hit type in order to declare the hit type is good...
bool m_addVertices
Whether to add the start vertex to the cheated pfo.
bool m_useOnlyAvailableClusters
Whether to consider unavailable clusters when identifying cheated pfos.
ParticleIdList m_particleIdList
The list of particle ids to consider for pfo creation; will consider all ids if empty.
bool m_collapseToPrimaryMCParticles
Whether to collapse mc particle hierarchies to primary particles.
bool m_replaceCurrentVertexList
Whether to replace current vertex list.
StatusCode lar_content::CheatingPfoCreationAlgorithm::Run ( )
private

Definition at line 32 of file CheatingPfoCreationAlgorithm.cc.

References CreatePfos(), GetMCParticleToClusterListMap(), lar_content::LArMCParticleHelper::GetMCPrimaryMap(), m_collapseToPrimaryMCParticles, m_inputClusterListNames, and m_mcParticleListName.

33 {
35 
37  {
38  const MCParticleList *pMCParticleList(nullptr);
39  PANDORA_THROW_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::GetList(*this, m_mcParticleListName, pMCParticleList));
40 
41  LArMCParticleHelper::GetMCPrimaryMap(pMCParticleList, mcPrimaryMap);
42  }
43 
44  MCParticleToClusterListMap mcParticleToClusterListMap;
45 
46  for (const std::string &clusterListName : m_inputClusterListNames)
47  {
48  const ClusterList *pClusterList(nullptr);
49 
50  if (STATUS_CODE_SUCCESS != PandoraContentApi::GetList(*this, clusterListName, pClusterList))
51  {
52  if (PandoraContentApi::GetSettings(*this)->ShouldDisplayAlgorithmInfo())
53  std::cout << "CheatingPfoCreationAlgorithm - Could not access cluster list with name " << clusterListName << std::endl;
54 
55  continue;
56  }
57 
58  this->GetMCParticleToClusterListMap(pClusterList, mcPrimaryMap, mcParticleToClusterListMap);
59  }
60 
61  this->CreatePfos(mcParticleToClusterListMap);
62  return STATUS_CODE_SUCCESS;
63 }
std::string m_mcParticleListName
The mc particle list name.
pandora::StringVector m_inputClusterListNames
The names of the input cluster lists.
static void GetMCPrimaryMap(const pandora::MCParticleList *const pMCParticleList, MCRelationMap &mcPrimaryMap)
Get mapping from individual mc particles (in a provided list) and their primary parent mc particles...
std::unordered_map< const pandora::MCParticle *, pandora::ClusterList > MCParticleToClusterListMap
void CreatePfos(const MCParticleToClusterListMap &mcParticleToClusterListMap) const
Create pfos corresponding to the details in a provided mc particle to cluster list map...
void GetMCParticleToClusterListMap(const pandora::ClusterList *const pClusterList, const LArMCParticleHelper::MCRelationMap &mcPrimaryMap, MCParticleToClusterListMap &mcParticleToClusterListMap) const
Get a map relating mc particles to a list of daughter clusters.
bool m_collapseToPrimaryMCParticles
Whether to collapse mc particle hierarchies to primary particles.
std::unordered_map< const pandora::MCParticle *, const pandora::MCParticle * > MCRelationMap

Member Data Documentation

bool lar_content::CheatingPfoCreationAlgorithm::m_addVertices
private

Whether to add the start vertex to the cheated pfo.

Definition at line 93 of file CheatingPfoCreationAlgorithm.h.

Referenced by CreatePfos(), and ReadSettings().

bool lar_content::CheatingPfoCreationAlgorithm::m_collapseToPrimaryMCParticles
private

Whether to collapse mc particle hierarchies to primary particles.

Definition at line 89 of file CheatingPfoCreationAlgorithm.h.

Referenced by GetMCParticleToClusterListMap(), ReadSettings(), and Run().

pandora::StringVector lar_content::CheatingPfoCreationAlgorithm::m_inputClusterListNames
private

The names of the input cluster lists.

Definition at line 85 of file CheatingPfoCreationAlgorithm.h.

Referenced by ReadSettings(), and Run().

std::string lar_content::CheatingPfoCreationAlgorithm::m_mcParticleListName
private

The mc particle list name.

Definition at line 90 of file CheatingPfoCreationAlgorithm.h.

Referenced by ReadSettings(), and Run().

unsigned int lar_content::CheatingPfoCreationAlgorithm::m_minGoodHitTypes
private

The min number of good hit types in the clusters collected for a given mc particle.

Definition at line 95 of file CheatingPfoCreationAlgorithm.h.

Referenced by CreatePfos(), and ReadSettings().

unsigned int lar_content::CheatingPfoCreationAlgorithm::m_nHitsForGoodHitType
private

The min number of hits of a particular hit type in order to declare the hit type is good.

Definition at line 96 of file CheatingPfoCreationAlgorithm.h.

Referenced by CreatePfos(), and ReadSettings().

std::string lar_content::CheatingPfoCreationAlgorithm::m_outputPfoListName
private

The output pfo list name.

Definition at line 86 of file CheatingPfoCreationAlgorithm.h.

Referenced by CreatePfos(), and ReadSettings().

std::string lar_content::CheatingPfoCreationAlgorithm::m_outputVertexListName
private

The output vertex list name.

Definition at line 87 of file CheatingPfoCreationAlgorithm.h.

Referenced by CreatePfos(), and ReadSettings().

ParticleIdList lar_content::CheatingPfoCreationAlgorithm::m_particleIdList
private

The list of particle ids to consider for pfo creation; will consider all ids if empty.

Definition at line 97 of file CheatingPfoCreationAlgorithm.h.

Referenced by GetMCParticleToClusterListMap(), and ReadSettings().

bool lar_content::CheatingPfoCreationAlgorithm::m_replaceCurrentVertexList
private

Whether to replace current vertex list.

Definition at line 94 of file CheatingPfoCreationAlgorithm.h.

Referenced by CreatePfos(), and ReadSettings().

bool lar_content::CheatingPfoCreationAlgorithm::m_useOnlyAvailableClusters
private

Whether to consider unavailable clusters when identifying cheated pfos.

Definition at line 92 of file CheatingPfoCreationAlgorithm.h.

Referenced by GetMCParticleToClusterListMap(), and ReadSettings().


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