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

DeltaRayMatchingContainers class. More...

#include <DeltaRayMatchingContainers.h>

Public Types

typedef std::map< const
pandora::Cluster *, const
pandora::ParticleFlowObject * > 
ClusterToPfoMap
 
typedef std::map< const
pandora::Cluster
*, pandora::ClusterList > 
ClusterProximityMap
 

Public Member Functions

 DeltaRayMatchingContainers ()
 Default constructor. More...
 
const ClusterToPfoMapGetClusterToPfoMap (const pandora::HitType hitType) const
 Get the mapping of clusters to the pfos to which they belong. More...
 
const ClusterProximityMapGetClusterProximityMap (const pandora::HitType hitType) const
 Get the mapping of clusters to to their neighbouring clusters. More...
 
void FillContainers (const pandora::PfoList &inputPfoList, const pandora::ClusterList &inputClusterList1, const pandora::ClusterList &inputClusterList2=pandora::ClusterList(), const pandora::ClusterList &inputClusterList3=pandora::ClusterList())
 Fill the HitToClusterMap, the ClusterProximityMap and the ClusterToPfoMap in all input views. More...
 
void AddClustersToPfoMaps (const pandora::ParticleFlowObject *const pPfo)
 Add the clusters of a cosmic ray/delta ray pfo to the cluster to pfo maps. More...
 
void AddClustersToContainers (const pandora::ClusterVector &newClusterVector, const pandora::PfoVector &pfoVector)
 Add a list of clusters to the hit to cluster and cluster proximity maps and, if appropriate, to the cluster to pfo map. More...
 
void RemoveClusterFromContainers (const pandora::Cluster *const pDeletedCluster)
 Remove an input cluster's hits from the hit to cluster and cluster proximity maps and, if appropriate, from the cluster to pfo map. More...
 
void ClearContainers ()
 Empty all algorithm containers. More...
 

Public Attributes

float m_searchRegion1D
 Search region, applied to each dimension, for look-up from kd-tree. More...
 

Private Types

typedef std::map< const
pandora::CaloHit *, const
pandora::Cluster * > 
HitToClusterMap
 
typedef KDTreeLinkerAlgo
< const pandora::CaloHit *, 2 > 
HitKDTree2D
 
typedef KDTreeNodeInfoT< const
pandora::CaloHit *, 2 > 
HitKDNode2D
 
typedef std::vector< HitKDNode2DHitKDNode2DList
 

Private Member Functions

void FillHitToClusterMap (const pandora::ClusterList &inputClusterList)
 Populate the hit to cluster map from a list of clusters. More...
 
void AddToClusterMap (const pandora::Cluster *const pCluster)
 Add the hits of a given cluster to the hit to cluster map. More...
 
void FillClusterToPfoMaps (const pandora::PfoList &pfoList)
 Populate all cluster to pfo maps from a list of particle flow objects. More...
 
void FillClusterProximityMap (const pandora::ClusterList &inputClusterList)
 Populate the cluster proximity map from a list of clusters. More...
 
void BuildKDTree (const pandora::HitType hitType)
 Build the KD tree. More...
 
void AddToClusterProximityMap (const pandora::Cluster *const pCluster)
 Add a cluster to the cluster proximity map. More...
 

Private Attributes

HitToClusterMap m_hitToClusterMapU
 The mapping of hits to the clusters to which they belong (in the U view) More...
 
HitToClusterMap m_hitToClusterMapV
 The mapping of hits to the clusters to which they belong (in the V view) More...
 
HitToClusterMap m_hitToClusterMapW
 The mapping of hits to the clusters to which they belong (in the W view) More...
 
HitKDTree2D m_kdTreeU
 The KD tree (in the U view) More...
 
HitKDTree2D m_kdTreeV
 The KD tree (in the V view) More...
 
HitKDTree2D m_kdTreeW
 The KD tree (in the W view) More...
 
ClusterProximityMap m_clusterProximityMapU
 The mapping of clusters to their neighbouring clusters (in the U view) More...
 
ClusterProximityMap m_clusterProximityMapV
 The mapping of clusters to their neighbouring clusters (in the V view) More...
 
ClusterProximityMap m_clusterProximityMapW
 The mapping of clusters to their neighbouring clusters (in the W view) More...
 
ClusterToPfoMap m_clusterToPfoMapU
 The mapping of cosmic ray U clusters to the cosmic ray pfos to which they belong. More...
 
ClusterToPfoMap m_clusterToPfoMapV
 The mapping of cosmic ray V clusters to the cosmic ray pfos to which they belong. More...
 
ClusterToPfoMap m_clusterToPfoMapW
 The mapping of cosmic ray W clusters to the cosmic ray pfos to which they belong. More...
 

Detailed Description

DeltaRayMatchingContainers class.

Definition at line 21 of file DeltaRayMatchingContainers.h.

Member Typedef Documentation

typedef std::map<const pandora::Cluster *, pandora::ClusterList> lar_content::DeltaRayMatchingContainers::ClusterProximityMap

Definition at line 25 of file DeltaRayMatchingContainers.h.

typedef std::map<const pandora::Cluster *, const pandora::ParticleFlowObject *> lar_content::DeltaRayMatchingContainers::ClusterToPfoMap

Definition at line 24 of file DeltaRayMatchingContainers.h.

typedef KDTreeNodeInfoT<const pandora::CaloHit *, 2> lar_content::DeltaRayMatchingContainers::HitKDNode2D
private

Definition at line 90 of file DeltaRayMatchingContainers.h.

Definition at line 91 of file DeltaRayMatchingContainers.h.

typedef KDTreeLinkerAlgo<const pandora::CaloHit *, 2> lar_content::DeltaRayMatchingContainers::HitKDTree2D
private

Definition at line 89 of file DeltaRayMatchingContainers.h.

typedef std::map<const pandora::CaloHit *, const pandora::Cluster *> lar_content::DeltaRayMatchingContainers::HitToClusterMap
private

Definition at line 88 of file DeltaRayMatchingContainers.h.

Constructor & Destructor Documentation

lar_content::DeltaRayMatchingContainers::DeltaRayMatchingContainers ( )

Default constructor.

Definition at line 23 of file DeltaRayMatchingContainers.cc.

23  : m_searchRegion1D(3.f)
24 {
25 }
float m_searchRegion1D
Search region, applied to each dimension, for look-up from kd-tree.

Member Function Documentation

void lar_content::DeltaRayMatchingContainers::AddClustersToContainers ( const pandora::ClusterVector &  newClusterVector,
const pandora::PfoVector &  pfoVector 
)

Add a list of clusters to the hit to cluster and cluster proximity maps and, if appropriate, to the cluster to pfo map.

Parameters
newClusterVectorthe ordered cluster vector
pfoVectorthe matching ordered vector of pfos to which the clusters belong (nullptr if not applicable)

Definition at line 169 of file DeltaRayMatchingContainers.cc.

170 {
171  for (const Cluster *const pNewCluster : newClusterVector)
172  this->AddToClusterMap(pNewCluster);
173 
174  for (unsigned int i = 0; i < newClusterVector.size(); i++)
175  {
176  const Cluster *const pNewCluster(newClusterVector.at(i));
177  const ParticleFlowObject *const pMuonPfo(pfoVector.at(i));
178 
179  this->AddToClusterProximityMap(pNewCluster);
180 
181  if (pMuonPfo)
182  this->AddClustersToPfoMaps(pMuonPfo);
183  }
184 }
void AddClustersToPfoMaps(const pandora::ParticleFlowObject *const pPfo)
Add the clusters of a cosmic ray/delta ray pfo to the cluster to pfo maps.
void AddToClusterMap(const pandora::Cluster *const pCluster)
Add the hits of a given cluster to the hit to cluster map.
void AddToClusterProximityMap(const pandora::Cluster *const pCluster)
Add a cluster to the cluster proximity map.
void lar_content::DeltaRayMatchingContainers::AddClustersToPfoMaps ( const pandora::ParticleFlowObject *const  pPfo)

Add the clusters of a cosmic ray/delta ray pfo to the cluster to pfo maps.

Parameters
theaddress of the input cosmic ray/delta ray pfo

Definition at line 148 of file DeltaRayMatchingContainers.cc.

149 {
150  for (const HitType hitType : {TPC_VIEW_U, TPC_VIEW_V, TPC_VIEW_W})
151  {
152  ClusterList pfoClusters;
153  LArPfoHelper::GetClusters(pPfo, hitType, pfoClusters);
154 
155  ClusterToPfoMap &clusterToPfoMap((hitType == TPC_VIEW_U) ? m_clusterToPfoMapU : (hitType == TPC_VIEW_V) ? m_clusterToPfoMapV : m_clusterToPfoMapW);
156 
157  for (const Cluster *const pCluster : pfoClusters)
158  {
159  if (clusterToPfoMap.find(pCluster) != clusterToPfoMap.end())
160  continue;
161 
162  clusterToPfoMap[pCluster] = pPfo;
163  }
164  }
165 }
std::map< const pandora::Cluster *, const pandora::ParticleFlowObject * > ClusterToPfoMap
static void GetClusters(const pandora::PfoList &pfoList, const pandora::HitType &hitType, pandora::ClusterList &clusterList)
Get a list of clusters of a particular hit type from a list of pfos.
ClusterToPfoMap m_clusterToPfoMapU
The mapping of cosmic ray U clusters to the cosmic ray pfos to which they belong. ...
ClusterToPfoMap m_clusterToPfoMapW
The mapping of cosmic ray W clusters to the cosmic ray pfos to which they belong. ...
ClusterToPfoMap m_clusterToPfoMapV
The mapping of cosmic ray V clusters to the cosmic ray pfos to which they belong. ...
void lar_content::DeltaRayMatchingContainers::AddToClusterMap ( const pandora::Cluster *const  pCluster)
private

Add the hits of a given cluster to the hit to cluster map.

Parameters
pClusterthe address of the input cluster

Definition at line 53 of file DeltaRayMatchingContainers.cc.

54 {
55  const HitType hitType(LArClusterHelper::GetClusterHitType(pCluster));
56  HitToClusterMap &hitToClusterMap((hitType == TPC_VIEW_U) ? m_hitToClusterMapU : (hitType == TPC_VIEW_V) ? m_hitToClusterMapV : m_hitToClusterMapW);
57 
58  CaloHitList caloHitList;
59  pCluster->GetOrderedCaloHitList().FillCaloHitList(caloHitList);
60 
61  for (const CaloHit *const pCaloHit : caloHitList)
62  hitToClusterMap[pCaloHit] = pCluster;
63 }
std::map< const pandora::CaloHit *, const pandora::Cluster * > HitToClusterMap
HitToClusterMap m_hitToClusterMapW
The mapping of hits to the clusters to which they belong (in the W view)
HitToClusterMap m_hitToClusterMapU
The mapping of hits to the clusters to which they belong (in the U view)
static pandora::HitType GetClusterHitType(const pandora::Cluster *const pCluster)
Get the hit type associated with a two dimensional cluster.
HitToClusterMap m_hitToClusterMapV
The mapping of hits to the clusters to which they belong (in the V view)
void lar_content::DeltaRayMatchingContainers::AddToClusterProximityMap ( const pandora::Cluster *const  pCluster)
private

Add a cluster to the cluster proximity map.

Parameters
pClusterthe address of the input cluster

Definition at line 100 of file DeltaRayMatchingContainers.cc.

101 {
102  const HitType hitType(LArClusterHelper::GetClusterHitType(pCluster));
103  const HitToClusterMap &hitToClusterMap((hitType == TPC_VIEW_U) ? m_hitToClusterMapU : (hitType == TPC_VIEW_V) ? m_hitToClusterMapV : m_hitToClusterMapW);
104  HitKDTree2D &kdTree((hitType == TPC_VIEW_U) ? m_kdTreeU : (hitType == TPC_VIEW_V) ? m_kdTreeV : m_kdTreeW);
105  ClusterProximityMap &clusterProximityMap(
106  (hitType == TPC_VIEW_U) ? m_clusterProximityMapU : (hitType == TPC_VIEW_V) ? m_clusterProximityMapV : m_clusterProximityMapW);
107 
108  CaloHitList caloHitList;
109  pCluster->GetOrderedCaloHitList().FillCaloHitList(caloHitList);
110 
111  for (const CaloHit *const pCaloHit : caloHitList)
112  {
113  HitKDNode2DList found;
115 
116  kdTree.search(searchRegionHits, found);
117 
118  for (const auto &hit : found)
119  {
120  const Cluster *const pNearbyCluster(hitToClusterMap.at(hit.data));
121 
122  if (pNearbyCluster == pCluster)
123  continue;
124 
125  ClusterList &nearbyClusterList(clusterProximityMap[pCluster]);
126 
127  if (std::find(nearbyClusterList.begin(), nearbyClusterList.end(), pNearbyCluster) == nearbyClusterList.end())
128  nearbyClusterList.push_back(pNearbyCluster);
129 
130  ClusterList &invertedNearbyClusterList(clusterProximityMap[pNearbyCluster]);
131 
132  if (std::find(invertedNearbyClusterList.begin(), invertedNearbyClusterList.end(), pCluster) == invertedNearbyClusterList.end())
133  invertedNearbyClusterList.push_back(pCluster);
134  }
135  }
136 }
KDTreeLinkerAlgo< const pandora::CaloHit *, 2 > HitKDTree2D
std::map< const pandora::CaloHit *, const pandora::Cluster * > HitToClusterMap
HitKDTree2D m_kdTreeW
The KD tree (in the W view)
HitKDTree2D m_kdTreeV
The KD tree (in the V view)
HitToClusterMap m_hitToClusterMapW
The mapping of hits to the clusters to which they belong (in the W view)
process_name hit
Definition: cheaterreco.fcl:51
HitToClusterMap m_hitToClusterMapU
The mapping of hits to the clusters to which they belong (in the U view)
static pandora::HitType GetClusterHitType(const pandora::Cluster *const pCluster)
Get the hit type associated with a two dimensional cluster.
ClusterProximityMap m_clusterProximityMapU
The mapping of clusters to their neighbouring clusters (in the U view)
ClusterProximityMap m_clusterProximityMapV
The mapping of clusters to their neighbouring clusters (in the V view)
HitKDTree2D m_kdTreeU
The KD tree (in the U view)
std::map< const pandora::Cluster *, pandora::ClusterList > ClusterProximityMap
HitToClusterMap m_hitToClusterMapV
The mapping of hits to the clusters to which they belong (in the V view)
ClusterProximityMap m_clusterProximityMapW
The mapping of clusters to their neighbouring clusters (in the W view)
KDTreeBox build_2d_kd_search_region(const pandora::CaloHit *const point, const float x_span, const float z_span)
build_2d_kd_search_region
KDTreeBoxT< 2 > KDTreeBox
float m_searchRegion1D
Search region, applied to each dimension, for look-up from kd-tree.
void lar_content::DeltaRayMatchingContainers::BuildKDTree ( const pandora::HitType  hitType)
private

Build the KD tree.

Parameters
hitTypethe hit type of the KD tree to build

Definition at line 82 of file DeltaRayMatchingContainers.cc.

83 {
84  const HitToClusterMap &hitToClusterMap((hitType == TPC_VIEW_U) ? m_hitToClusterMapU : (hitType == TPC_VIEW_V) ? m_hitToClusterMapV : m_hitToClusterMapW);
85  HitKDTree2D &kdTree((hitType == TPC_VIEW_U) ? m_kdTreeU : (hitType == TPC_VIEW_V) ? m_kdTreeV : m_kdTreeW);
86 
87  CaloHitList allCaloHits;
88 
89  for (auto &entry : hitToClusterMap)
90  allCaloHits.push_back(entry.first);
91 
92  HitKDNode2DList hitKDNode2DList;
93  KDTreeBox hitsBoundingRegion2D(fill_and_bound_2d_kd_tree(allCaloHits, hitKDNode2DList));
94 
95  kdTree.build(hitKDNode2DList, hitsBoundingRegion2D);
96 }
KDTreeLinkerAlgo< const pandora::CaloHit *, 2 > HitKDTree2D
std::map< const pandora::CaloHit *, const pandora::Cluster * > HitToClusterMap
HitKDTree2D m_kdTreeW
The KD tree (in the W view)
HitKDTree2D m_kdTreeV
The KD tree (in the V view)
HitToClusterMap m_hitToClusterMapW
The mapping of hits to the clusters to which they belong (in the W view)
HitToClusterMap m_hitToClusterMapU
The mapping of hits to the clusters to which they belong (in the U view)
HitKDTree2D m_kdTreeU
The KD tree (in the U view)
HitToClusterMap m_hitToClusterMapV
The mapping of hits to the clusters to which they belong (in the V view)
KDTreeBox fill_and_bound_2d_kd_tree(const MANAGED_CONTAINER< const T * > &points, std::vector< KDTreeNodeInfoT< const T *, 2 >> &nodes)
fill_and_bound_2d_kd_tree
KDTreeBoxT< 2 > KDTreeBox
void lar_content::DeltaRayMatchingContainers::ClearContainers ( )

Empty all algorithm containers.

Definition at line 239 of file DeltaRayMatchingContainers.cc.

240 {
241  m_hitToClusterMapU.clear();
242  m_hitToClusterMapV.clear();
243  m_hitToClusterMapW.clear();
244 
245  m_kdTreeU.clear();
246  m_kdTreeV.clear();
247  m_kdTreeW.clear();
248 
249  m_clusterProximityMapU.clear();
250  m_clusterProximityMapV.clear();
251  m_clusterProximityMapW.clear();
252 
253  m_clusterToPfoMapU.clear();
254  m_clusterToPfoMapV.clear();
255  m_clusterToPfoMapW.clear();
256 }
HitKDTree2D m_kdTreeW
The KD tree (in the W view)
HitKDTree2D m_kdTreeV
The KD tree (in the V view)
HitToClusterMap m_hitToClusterMapW
The mapping of hits to the clusters to which they belong (in the W view)
void clear()
Clear all allocated structures.
HitToClusterMap m_hitToClusterMapU
The mapping of hits to the clusters to which they belong (in the U view)
ClusterProximityMap m_clusterProximityMapU
The mapping of clusters to their neighbouring clusters (in the U view)
ClusterProximityMap m_clusterProximityMapV
The mapping of clusters to their neighbouring clusters (in the V view)
ClusterToPfoMap m_clusterToPfoMapU
The mapping of cosmic ray U clusters to the cosmic ray pfos to which they belong. ...
ClusterToPfoMap m_clusterToPfoMapW
The mapping of cosmic ray W clusters to the cosmic ray pfos to which they belong. ...
HitKDTree2D m_kdTreeU
The KD tree (in the U view)
HitToClusterMap m_hitToClusterMapV
The mapping of hits to the clusters to which they belong (in the V view)
ClusterProximityMap m_clusterProximityMapW
The mapping of clusters to their neighbouring clusters (in the W view)
ClusterToPfoMap m_clusterToPfoMapV
The mapping of cosmic ray V clusters to the cosmic ray pfos to which they belong. ...
void lar_content::DeltaRayMatchingContainers::FillClusterProximityMap ( const pandora::ClusterList &  inputClusterList)
private

Populate the cluster proximity map from a list of clusters.

Parameters
inputClusterListthe input list of clusters

Definition at line 67 of file DeltaRayMatchingContainers.cc.

68 {
69  if (inputClusterList.empty())
70  return;
71 
72  const HitType hitType(LArClusterHelper::GetClusterHitType(inputClusterList.front()));
73 
74  this->BuildKDTree(hitType);
75 
76  for (const Cluster *const pCluster : inputClusterList)
77  this->AddToClusterProximityMap(pCluster);
78 }
static pandora::HitType GetClusterHitType(const pandora::Cluster *const pCluster)
Get the hit type associated with a two dimensional cluster.
void AddToClusterProximityMap(const pandora::Cluster *const pCluster)
Add a cluster to the cluster proximity map.
void BuildKDTree(const pandora::HitType hitType)
Build the KD tree.
void lar_content::DeltaRayMatchingContainers::FillClusterToPfoMaps ( const pandora::PfoList &  pfoList)
private

Populate all cluster to pfo maps from a list of particle flow objects.

Parameters
pfoListthe input list of pfos

Definition at line 140 of file DeltaRayMatchingContainers.cc.

141 {
142  for (const ParticleFlowObject *const pPfo : inputPfoList)
143  this->AddClustersToPfoMaps(pPfo);
144 }
void AddClustersToPfoMaps(const pandora::ParticleFlowObject *const pPfo)
Add the clusters of a cosmic ray/delta ray pfo to the cluster to pfo maps.
void lar_content::DeltaRayMatchingContainers::FillContainers ( const pandora::PfoList &  inputPfoList,
const pandora::ClusterList &  inputClusterList1,
const pandora::ClusterList &  inputClusterList2 = pandora::ClusterList(),
const pandora::ClusterList &  inputClusterList3 = pandora::ClusterList() 
)

Fill the HitToClusterMap, the ClusterProximityMap and the ClusterToPfoMap in all input views.

Parameters
inputPfoListthe input list of pfos
inputClusterList1the input list of clusters in view 1
inputClusterList2the input list of clusters in view 2
inputClusterList3the input list of clusters in view 3

Definition at line 29 of file DeltaRayMatchingContainers.cc.

31 {
32  this->FillHitToClusterMap(inputClusterList1);
33  this->FillHitToClusterMap(inputClusterList2);
34  this->FillHitToClusterMap(inputClusterList3);
35 
36  this->FillClusterProximityMap(inputClusterList1);
37  this->FillClusterProximityMap(inputClusterList2);
38  this->FillClusterProximityMap(inputClusterList3);
39 
40  this->FillClusterToPfoMaps(inputPfoList);
41 }
void FillHitToClusterMap(const pandora::ClusterList &inputClusterList)
Populate the hit to cluster map from a list of clusters.
void FillClusterProximityMap(const pandora::ClusterList &inputClusterList)
Populate the cluster proximity map from a list of clusters.
void FillClusterToPfoMaps(const pandora::PfoList &pfoList)
Populate all cluster to pfo maps from a list of particle flow objects.
void lar_content::DeltaRayMatchingContainers::FillHitToClusterMap ( const pandora::ClusterList &  inputClusterList)
private

Populate the hit to cluster map from a list of clusters.

Parameters
inputClusterListthe input list of clusters

Definition at line 45 of file DeltaRayMatchingContainers.cc.

46 {
47  for (const Cluster *const pCluster : inputClusterList)
48  this->AddToClusterMap(pCluster);
49 }
void AddToClusterMap(const pandora::Cluster *const pCluster)
Add the hits of a given cluster to the hit to cluster map.
const DeltaRayMatchingContainers::ClusterProximityMap & lar_content::DeltaRayMatchingContainers::GetClusterProximityMap ( const pandora::HitType  hitType) const
inline

Get the mapping of clusters to to their neighbouring clusters.

Returns
the cluster to nearby cluster map

Definition at line 152 of file DeltaRayMatchingContainers.h.

153 {
154  return ((hitType == pandora::TPC_VIEW_U) ? m_clusterProximityMapU : (hitType == pandora::TPC_VIEW_V) ? m_clusterProximityMapV : m_clusterProximityMapW);
155 }
ClusterProximityMap m_clusterProximityMapU
The mapping of clusters to their neighbouring clusters (in the U view)
ClusterProximityMap m_clusterProximityMapV
The mapping of clusters to their neighbouring clusters (in the V view)
ClusterProximityMap m_clusterProximityMapW
The mapping of clusters to their neighbouring clusters (in the W view)
const DeltaRayMatchingContainers::ClusterToPfoMap & lar_content::DeltaRayMatchingContainers::GetClusterToPfoMap ( const pandora::HitType  hitType) const
inline

Get the mapping of clusters to the pfos to which they belong.

Returns
the cluster to pfo map

Definition at line 159 of file DeltaRayMatchingContainers.h.

160 {
161  return ((hitType == pandora::TPC_VIEW_U) ? m_clusterToPfoMapU : (hitType == pandora::TPC_VIEW_V) ? m_clusterToPfoMapV : m_clusterToPfoMapW);
162 }
ClusterToPfoMap m_clusterToPfoMapU
The mapping of cosmic ray U clusters to the cosmic ray pfos to which they belong. ...
ClusterToPfoMap m_clusterToPfoMapW
The mapping of cosmic ray W clusters to the cosmic ray pfos to which they belong. ...
ClusterToPfoMap m_clusterToPfoMapV
The mapping of cosmic ray V clusters to the cosmic ray pfos to which they belong. ...
void lar_content::DeltaRayMatchingContainers::RemoveClusterFromContainers ( const pandora::Cluster *const  pDeletedCluster)

Remove an input cluster's hits from the hit to cluster and cluster proximity maps and, if appropriate, from the cluster to pfo map.

Parameters
pDeletedClusterthe input cluster

Definition at line 188 of file DeltaRayMatchingContainers.cc.

189 {
190  const HitType hitType(LArClusterHelper::GetClusterHitType(pDeletedCluster));
191  HitToClusterMap &hitToClusterMap((hitType == TPC_VIEW_U) ? m_hitToClusterMapU : (hitType == TPC_VIEW_V) ? m_hitToClusterMapV : m_hitToClusterMapW);
192  ClusterProximityMap &clusterProximityMap(
193  (hitType == TPC_VIEW_U) ? m_clusterProximityMapU : (hitType == TPC_VIEW_V) ? m_clusterProximityMapV : m_clusterProximityMapW);
194  ClusterToPfoMap &clusterToPfoMap((hitType == TPC_VIEW_U) ? m_clusterToPfoMapU : (hitType == TPC_VIEW_V) ? m_clusterToPfoMapV : m_clusterToPfoMapW);
195 
196  CaloHitList caloHitList;
197  pDeletedCluster->GetOrderedCaloHitList().FillCaloHitList(caloHitList);
198 
199  for (const CaloHit *const pCaloHit : caloHitList)
200  {
201  const HitToClusterMap::const_iterator iter(hitToClusterMap.find(pCaloHit));
202 
203  if (iter == hitToClusterMap.end())
204  throw StatusCodeException(STATUS_CODE_FAILURE);
205 
206  hitToClusterMap.erase(iter);
207  }
208 
209  const ClusterProximityMap::const_iterator clusterProximityIter(clusterProximityMap.find(pDeletedCluster));
210 
211  if (clusterProximityIter != clusterProximityMap.end())
212  {
213  const ClusterList &nearbyClusterList(clusterProximityIter->second);
214 
215  for (const Cluster *const pNearbyCluster : nearbyClusterList)
216  {
217  const ClusterProximityMap::iterator iter(clusterProximityMap.find(pNearbyCluster));
218 
219  if (iter == clusterProximityMap.end())
220  continue;
221 
222  ClusterList &invertedCloseClusters(iter->second);
223 
224  ClusterList::iterator invertedIter(std::find(invertedCloseClusters.begin(), invertedCloseClusters.end(), pDeletedCluster));
225  invertedCloseClusters.erase(invertedIter);
226  }
227 
228  clusterProximityMap.erase(clusterProximityIter);
229  }
230 
231  const DeltaRayMatchingContainers::ClusterToPfoMap::const_iterator clusterToPfoIter(clusterToPfoMap.find(pDeletedCluster));
232 
233  if (clusterToPfoIter != clusterToPfoMap.end())
234  clusterToPfoMap.erase(clusterToPfoIter);
235 }
std::map< const pandora::CaloHit *, const pandora::Cluster * > HitToClusterMap
std::map< const pandora::Cluster *, const pandora::ParticleFlowObject * > ClusterToPfoMap
HitToClusterMap m_hitToClusterMapW
The mapping of hits to the clusters to which they belong (in the W view)
HitToClusterMap m_hitToClusterMapU
The mapping of hits to the clusters to which they belong (in the U view)
static pandora::HitType GetClusterHitType(const pandora::Cluster *const pCluster)
Get the hit type associated with a two dimensional cluster.
ClusterProximityMap m_clusterProximityMapU
The mapping of clusters to their neighbouring clusters (in the U view)
ClusterProximityMap m_clusterProximityMapV
The mapping of clusters to their neighbouring clusters (in the V view)
ClusterToPfoMap m_clusterToPfoMapU
The mapping of cosmic ray U clusters to the cosmic ray pfos to which they belong. ...
ClusterToPfoMap m_clusterToPfoMapW
The mapping of cosmic ray W clusters to the cosmic ray pfos to which they belong. ...
std::map< const pandora::Cluster *, pandora::ClusterList > ClusterProximityMap
HitToClusterMap m_hitToClusterMapV
The mapping of hits to the clusters to which they belong (in the V view)
ClusterProximityMap m_clusterProximityMapW
The mapping of clusters to their neighbouring clusters (in the W view)
ClusterToPfoMap m_clusterToPfoMapV
The mapping of cosmic ray V clusters to the cosmic ray pfos to which they belong. ...

Member Data Documentation

ClusterProximityMap lar_content::DeltaRayMatchingContainers::m_clusterProximityMapU
private

The mapping of clusters to their neighbouring clusters (in the U view)

Definition at line 141 of file DeltaRayMatchingContainers.h.

ClusterProximityMap lar_content::DeltaRayMatchingContainers::m_clusterProximityMapV
private

The mapping of clusters to their neighbouring clusters (in the V view)

Definition at line 142 of file DeltaRayMatchingContainers.h.

ClusterProximityMap lar_content::DeltaRayMatchingContainers::m_clusterProximityMapW
private

The mapping of clusters to their neighbouring clusters (in the W view)

Definition at line 143 of file DeltaRayMatchingContainers.h.

ClusterToPfoMap lar_content::DeltaRayMatchingContainers::m_clusterToPfoMapU
private

The mapping of cosmic ray U clusters to the cosmic ray pfos to which they belong.

Definition at line 144 of file DeltaRayMatchingContainers.h.

ClusterToPfoMap lar_content::DeltaRayMatchingContainers::m_clusterToPfoMapV
private

The mapping of cosmic ray V clusters to the cosmic ray pfos to which they belong.

Definition at line 145 of file DeltaRayMatchingContainers.h.

ClusterToPfoMap lar_content::DeltaRayMatchingContainers::m_clusterToPfoMapW
private

The mapping of cosmic ray W clusters to the cosmic ray pfos to which they belong.

Definition at line 146 of file DeltaRayMatchingContainers.h.

HitToClusterMap lar_content::DeltaRayMatchingContainers::m_hitToClusterMapU
private

The mapping of hits to the clusters to which they belong (in the U view)

Definition at line 135 of file DeltaRayMatchingContainers.h.

HitToClusterMap lar_content::DeltaRayMatchingContainers::m_hitToClusterMapV
private

The mapping of hits to the clusters to which they belong (in the V view)

Definition at line 136 of file DeltaRayMatchingContainers.h.

HitToClusterMap lar_content::DeltaRayMatchingContainers::m_hitToClusterMapW
private

The mapping of hits to the clusters to which they belong (in the W view)

Definition at line 137 of file DeltaRayMatchingContainers.h.

HitKDTree2D lar_content::DeltaRayMatchingContainers::m_kdTreeU
private

The KD tree (in the U view)

Definition at line 138 of file DeltaRayMatchingContainers.h.

HitKDTree2D lar_content::DeltaRayMatchingContainers::m_kdTreeV
private

The KD tree (in the V view)

Definition at line 139 of file DeltaRayMatchingContainers.h.

HitKDTree2D lar_content::DeltaRayMatchingContainers::m_kdTreeW
private

The KD tree (in the W view)

Definition at line 140 of file DeltaRayMatchingContainers.h.

float lar_content::DeltaRayMatchingContainers::m_searchRegion1D

Search region, applied to each dimension, for look-up from kd-tree.

Definition at line 85 of file DeltaRayMatchingContainers.h.


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