8#ifndef LAR_TWO_VIEW_DELTA_RAY_MATCHING_ALGORITHM_H
9#define LAR_TWO_VIEW_DELTA_RAY_MATCHING_ALGORITHM_H 1
24class DeltaRayMatrixTool;
35 typedef TwoViewDeltaRayMatchingAlgorithm::MatchingType::MatrixType
MatrixType;
79 bool CreatePfo(
const MatrixType::Element &element);
202 typedef TwoViewDeltaRayMatchingAlgorithm::MatchingType::MatrixType
MatrixType;
203 typedef std::vector<MatrixType::ElementList::const_iterator>
IteratorList;
Header file for the algorithm class.
Header file for the kd tree linker algo template class.
Header file for the lar track two view overlap result class.
Header file for the two view matching control class.
DeltaRayTensorTool class.
TwoViewDeltaRayMatchingAlgorithm * m_pParentAlgorithm
Address of the parent matching algorithm.
virtual bool Run(TwoViewDeltaRayMatchingAlgorithm *const pAlgorithm, MatrixType &matrixTensor)=0
Run the algorithm tool.
std::vector< MatrixType::ElementList::const_iterator > IteratorList
TwoViewDeltaRayMatchingAlgorithm::MatchingType::MatrixType MatrixType
NViewDeltaRayMatchingAlgorithm class.
std::vector< pandora::HitType > HitTypeVector
TwoViewDeltaRayMatchingAlgorithm class.
void ExamineOverlapContainer()
Examine contents of overlap container, collect together best-matching 2D particles and modify cluster...
void CalculateOverlapResult(const pandora::Cluster *const pCluster1, const pandora::Cluster *const pCluster2, const pandora::Cluster *const pCluster3)
Calculate cluster overlap result and store in container.
void CollectThirdViewClusters(const pandora::Cluster *const pCluster1, const pandora::Cluster *const pCluster2, const pandora::CartesianPointVector &projectedPositions, pandora::ClusterList &matchedClusters) const
Collect the available and unavailable third view clusters that lie close to the projected delta ray h...
TwoViewDeltaRayMatchingAlgorithm()
Default constructor.
std::vector< DeltaRayMatrixTool * > MatrixToolVector
bool CreatePfo(const MatrixType::Element &element)
Create delta ray pfos out of a given element, merging the third view clusters together and adding in ...
const std::string & GetClusteringAlgName() const
Get the name of the clustering algorithm to be used to recluster created delta ray remnants.
TwoViewDeltaRayMatchingAlgorithm::MatchingType::MatrixType MatrixType
float m_minDistanceFromMuon
The minimum distance of a hit from the cosmic ray track required for removal.
MatrixToolVector m_algorithmToolVector
The algorithm tool vector.
const pandora::Cluster * GetCluster(const MatrixType::Element &element, const pandora::HitType hitType)
Get the address of the given hit type cluster.
float m_maxDistanceFromPrediction
The maximum distance of a matched cluster from the third view projection points.
unsigned int m_minClusterCaloHits
The threshold number of hits for a cluster to be considered.
HitTypeVector GetHitTypeVector()
Obtain the HitTypeVector of input views.
void UpdateForThirdViewClusterModification(const pandora::Cluster *const pModifiedCluster, const bool isMuon)
Update the matrix after a third view cluster modification - remove delta ray clusters and reassess th...
const std::string & GetThirdViewClusterListName() const
Get the name of the third view clusters.
void FindCommonMuonParents(const pandora::Cluster *const pCluster1, const pandora::Cluster *const pCluster2, pandora::PfoList &commonMuonPfoList) const
Find the cosmic ray pfos that, in each view, lie close to the clusters of the matrix element.
float m_maxDistanceToCollected
The maximim distance of a hit from the projected delta ray hits required for removal.
NViewDeltaRayMatchingAlgorithm< TwoViewMatchingControl< TwoViewDeltaRayOverlapResult > > BaseAlgorithm
const pandora::Cluster * GetBestMatchedCluster(const pandora::Cluster *const pCluster1, const pandora::Cluster *const pCluster2, const pandora::PfoList &commonMuonPfoList, const pandora::ClusterList &matchedClusters, float &reducedChiSquared) const
Determine the best matched third view cluster and calculate the reduced chi-squared value of the thre...
void FormThirdViewCluster(const MatrixType::Element &element, ProtoParticle &protoParticle)
Form the third view cluster by removing hits from cosmic ray clusters and merging the matched cluster...
virtual bool DoesClusterPassTensorThreshold(const pandora::Cluster *const pCluster) const
To check whether a given cluster meets the requirements to be added into the matching container (tens...
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
Read the algorithm settings.
float m_maxGoodMatchReducedChiSquared
The maximum reduced chi squared value of a good 1:1:1 match.
unsigned int m_nMaxMatrixToolRepeats
The maximum number of repeat loops over matrix tools.
std::string m_reclusteringAlgorithmName
The name of the clustering algorithm to be used to recluster created delta ray remnants.
std::string m_inputClusterListName
The name of the cluster list in the view in which to project into.
void MergeThirdView(const MatrixType::Element &element, const pandora::Cluster *const pSeedCluster)
Starting with an input seed cluster, sequentially merge in matched clusters that retain a good reduce...
TwoViewDeltaRayOverlapResult class.
HitType
Calorimeter hit type enum.
MANAGED_CONTAINER< const Cluster * > ClusterList
std::vector< CartesianVector > CartesianPointVector
StatusCode
The StatusCode enum.
MANAGED_CONTAINER< const ParticleFlowObject * > PfoList