18 m_minMatchedSamplingPoints(15),
19 m_minMatchedFraction(0.95f),
20 m_maxReducedChiSquared(0.707f),
21 m_minXOverlapFraction(0.75f)
30 std::cout <<
"----> Running Algorithm Tool: " << this->
GetInstanceName() <<
", " << this->
GetType() << std::endl;
45 overlapTensor.GetSortedKeyClusters(sortedKeyClusters);
47 for (
const Cluster *
const pKeyCluster : sortedKeyClusters)
49 unsigned int nU(0), nV(0), nW(0);
50 TensorType::ElementList elementList;
51 overlapTensor.GetConnectedElements(pKeyCluster,
false, elementList, nU, nV, nW);
53 for (TensorType::ElementList::const_iterator eIter = elementList.begin(); eIter != elementList.end(); ++eIter)
55 const bool includeU(eIter->GetClusterU()->IsAvailable() && !usedClusters.count(eIter->GetClusterU()));
56 const bool includeV(eIter->GetClusterV()->IsAvailable() && !usedClusters.count(eIter->GetClusterV()));
57 const bool includeW(eIter->GetClusterW()->IsAvailable() && !usedClusters.count(eIter->GetClusterW()));
59 unsigned int nAvailable(0);
107 protoParticleVector.push_back(protoParticle);
108 usedClusters.insert(eIter->GetClusterU());
109 usedClusters.insert(eIter->GetClusterV());
110 usedClusters.insert(eIter->GetClusterW());
131 return STATUS_CODE_SUCCESS;
#define PANDORA_RETURN_RESULT_IF_AND_IF(StatusCode1, StatusCode2, Operator, Command)
static const pandora::PandoraSettings * GetSettings(const pandora::Algorithm &algorithm)
Get the pandora settings instance.
virtual bool CreateThreeDParticles(const ProtoParticleVector &protoParticleVector)
Create particles using findings from recent algorithm processing.
MissingTrackTool()
Default constructor.
float m_maxReducedChiSquared
The max reduced chi squared value for the unavailable tensor element.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
Read the algorithm settings.
float m_minXOverlapFraction
The min x overlap fraction for the two available clusters in the tensor element.
void FindMissingTracks(const TensorType &overlapTensor, ProtoParticleVector &protoParticleVector) const
Find missing tracks, due to merging of multiple particle deposits into single hits during hit creatio...
float m_minMatchedFraction
The min matched sampling point fraction for the unavailable tensor element.
bool Run(ThreeViewTransverseTracksAlgorithm *const pAlgorithm, TensorType &overlapTensor)
Run the algorithm tool.
unsigned int m_minMatchedSamplingPoints
The min number of matched sampling points for the unavailable tensor element.
ThreeViewTransverseTracksAlgorithm class.
unsigned int GetNMatchedSamplingPoints() const
Get the number of matched sampling points.
float GetReducedChi2() const
Get the chi2 per samping point value.
float GetMatchedFraction() const
Get the fraction of sampling points resulting in a match.
TransverseOverlapResult class.
const XOverlap & GetXOverlap() const
Get the x overlap object.
ThreeViewTransverseTracksAlgorithm::MatchingType::TensorType TensorType
float GetXSpanV() const
Get the x span in the v view.
float GetXOverlapSpan() const
Get the x overlap span.
float GetXSpanW() const
Get the x span in the w view.
float GetXSpanU() const
Get the x span in the u view.
bool ShouldDisplayAlgorithmInfo() const
Whether to display algorithm information during processing.
const std::string & GetType() const
Get the type.
const std::string & GetInstanceName() const
Get the instance name.
static StatusCode ReadValue(const TiXmlHandle &xmlHandle, const std::string &xmlElementName, T &t)
Read a value from an xml element.
std::vector< ProtoParticle > ProtoParticleVector
pandora::ClusterList m_clusterList
List of 2D clusters in a 3D proto particle.
std::vector< const Cluster * > ClusterVector
std::unordered_set< const Cluster * > ClusterSet
StatusCode
The StatusCode enum.