Pandora
Pandora source code navigator
Loading...
Searching...
No Matches
OneViewDeltaRayMatchingAlgorithm.h
Go to the documentation of this file.
1
8#ifndef LAR_ONE_VIEW_DELTA_RAY_MATCHING_ALGORITHM_H
9#define LAR_ONE_VIEW_DELTA_RAY_MATCHING_ALGORITHM_H 1
10
11#include "Pandora/Algorithm.h"
12
14
16
17namespace lar_content
18{
19
24{
25public:
30
31private:
34
43
50
57
63 void PerformOneViewMatching(const pandora::HitType hitType);
64
72 bool IsMuonPfo(const pandora::Cluster *const pCluster);
73
82 bool AddIntoExistingDeltaRay(const pandora::Cluster *const pAvailableCluster, const pandora::PfoVector &nearbyMuonPfoVector);
83
94 const pandora::Cluster *GetBestProjectedCluster(const pandora::ClusterList &deltaRayClusterGroup,
95 const pandora::ParticleFlowObject *const pNearbyMuonPfo, const pandora::HitType hitType, const bool findAvailable);
96
104 bool IsDeltaRayPfo(const pandora::Cluster *const pCluster);
105
113 void GetClusterSpanX(const pandora::ClusterList &clusterList, float &spanMinX, float &spanMaxX);
114
122 void CreateDeltaRay(const pandora::Cluster *const pAvailableCluster, const pandora::PfoVector &nearbyMuonPfoVector, pandora::ClusterSet &modifiedClusters);
123
131 void GetNearbyAvailableClusters(const pandora::Cluster *const pCluster, pandora::ClusterList &consideredClusters, pandora::ClusterList &foundClusters);
132
140 const pandora::Cluster *MergeClusterGroup(const pandora::ClusterList &clusterGroup);
141
149 void CreatePfo(const pandora::Cluster *const pCluster1, const pandora::Cluster *const pCluster2, const pandora::Cluster *const pCluster3);
150
156 void PerformRecovery(const pandora::HitType hitType);
157
158 std::string m_muonPfoListName;
166 unsigned int m_minClusterHits;
167};
168
169} // namespace lar_content
170
171#endif // #ifndef LAR_ONE_VIEW_DELTA_RAY_MATCHING_ALGORITHM_H
Header file for the algorithm class.
Header file for the delta ray matching containers class.
Header file for the kd tree linker algo template class.
const pandora::Cluster * GetBestProjectedCluster(const pandora::ClusterList &deltaRayClusterGroup, const pandora::ParticleFlowObject *const pNearbyMuonPfo, const pandora::HitType hitType, const bool findAvailable)
Get the best matched available or unavailable cluster of a remaining delta ray cluster group wrt a co...
DeltaRayMatchingContainers m_deltaRayMatchingContainers
The class of hit, cluster and pfo ownership and proximity maps.
const pandora::ClusterList GetInputClusterList(const pandora::HitType hitType)
Get the input cluster list of a given hit type.
std::string m_outputPfoListName
The list to receive the created delta ray pfos.
void PerformRecovery(const pandora::HitType hitType)
Create a delta ray pfo from any remaining, significant clusters.
std::string m_inputClusterListNameW
The list of reconstructed W clusters.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
Read the algorithm settings.
const pandora::PfoList GetDeltaRayPfoList()
Get the input delta ray pfo list.
void CreatePfo(const pandora::Cluster *const pCluster1, const pandora::Cluster *const pCluster2, const pandora::Cluster *const pCluster3)
Create a pfo from the input clusters updating the cluster to pfo map accordingly.
float m_overlapExtension
The extension to each side of the x overlap region in which to search for matched clusters.
const pandora::Cluster * MergeClusterGroup(const pandora::ClusterList &clusterGroup)
Merge a collection of available clusters together updating hit containers accordingly.
unsigned int m_minClusterHits
The minimum number of hits for a cluster to be significant.
void GetNearbyAvailableClusters(const pandora::Cluster *const pCluster, pandora::ClusterList &consideredClusters, pandora::ClusterList &foundClusters)
In the view of the input available cluster, gather nearby available clusters.
bool IsMuonPfo(const pandora::Cluster *const pCluster)
Determine whether an input cluster belongs to a cosmic ray pfo.
std::string m_deltaRayPfoListName
The list of reconstructed delta ray pfos.
bool AddIntoExistingDeltaRay(const pandora::Cluster *const pAvailableCluster, const pandora::PfoVector &nearbyMuonPfoVector)
Use nearby muon pfos to project into other views and attempt to add a remaining delta ray cluster int...
const pandora::PfoList GetMuonPfoList()
Get the input cosmic ray pfo list.
std::string m_muonPfoListName
The list of reconstructed cosmic ray pfos.
void PerformOneViewMatching(const pandora::HitType hitType)
Use nearby muon pfos to project into other views and attempt to match the remaining delta ray cluster...
void CreateDeltaRay(const pandora::Cluster *const pAvailableCluster, const pandora::PfoVector &nearbyMuonPfoVector, pandora::ClusterSet &modifiedClusters)
Use nearby muon pfos to project into other views and attempt to match a remaining delta ray cluster t...
std::string m_inputClusterListNameV
The list of reconstructed V clusters.
void GetClusterSpanX(const pandora::ClusterList &clusterList, float &spanMinX, float &spanMaxX)
Determine cluster span (in x) of a group of clusters.
std::string m_inputClusterListNameU
The list of reconstructed U clusters.
bool IsDeltaRayPfo(const pandora::Cluster *const pCluster)
Determine whether an input cluster belongs to a delta ray pfo.
Algorithm class. Algorithm addresses are held only by the algorithm manager. They have a fully define...
Definition Algorithm.h:21
Cluster class.
Definition Cluster.h:31
ParticleFlowObject class.
HitType
Calorimeter hit type enum.
MANAGED_CONTAINER< const Cluster * > ClusterList
std::vector< const ParticleFlowObject * > PfoVector
std::unordered_set< const Cluster * > ClusterSet
StatusCode
The StatusCode enum.
MANAGED_CONTAINER< const ParticleFlowObject * > PfoList