LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
DeltaRayRemovalTool class. More...
#include "DeltaRayRemovalTool.h"
Public Types | |
typedef std::vector< pandora::HitType > | HitTypeVector |
typedef ThreeViewDeltaRayMatchingAlgorithm::MatchingType::TensorType | TensorType |
typedef std::vector< TensorType::ElementList::const_iterator > | IteratorList |
Public Member Functions | |
DeltaRayRemovalTool () | |
Default constructor. More... | |
Public Attributes | |
ThreeViewDeltaRayMatchingAlgorithm * | m_pParentAlgorithm |
Address of the parent matching algorithm. More... | |
Protected Member Functions | |
bool | IsMuonEndpoint (const TensorType::Element &element, const bool ignoreHitType, const pandora::HitType hitTypeToIgnore=pandora::TPC_VIEW_U) const |
Determine whether the matched clusters suggest that the delta ray is at the endpoint of the cosmic ray (and is likely to be a michel) More... | |
bool | IsBestElement (const TensorType::Element &element, const pandora::HitType hitType, const TensorType::ElementList &elementList, const pandora::ClusterSet &modifiedClusters) const |
Determine whether the input element is the best to use to modify the contaminated cluster (best is defined by the total hit count) More... | |
bool | IsCloseToLine (const pandora::CartesianVector &hitPosition, const pandora::CartesianVector &lineStart, const pandora::CartesianVector &lineEnd, const float distanceToLine) const |
Whether a given position is close to a defined line. More... | |
bool | IsInLineSegment (const pandora::CartesianVector &lowerBoundary, const pandora::CartesianVector &upperBoundary, const pandora::CartesianVector &point) const |
Whether the projection of a given position lies on a defined line. More... | |
void | FindExtrapolatedHits (const pandora::Cluster *const pCluster, const pandora::CartesianVector &lowerBoundary, const pandora::CartesianVector &upperBoundary, pandora::CaloHitList &collectedHits) const |
Collect the hits that are closest to and can be projected onto a defined line. More... | |
pandora::StatusCode | ProjectDeltaRayPositions (const TensorType::Element &element, const pandora::HitType hitType, pandora::CartesianPointVector &projectedPositions) const |
Use two views of a delta ray pfo to calculate projected positions in a given third view. More... | |
Protected Attributes | |
float | m_minSeparation |
The minimum delta ray - parent muon cluster separation required to investigate a delta/cosmic ray cluster. More... | |
float | m_distanceToLine |
The maximum perpendicular distance of a position to a line for it to be considered close. More... | |
Private Member Functions | |
bool | Run (ThreeViewDeltaRayMatchingAlgorithm *const pAlgorithm, TensorType &overlapTensor) |
Run the algorithm tool. More... | |
pandora::StatusCode | ReadSettings (const pandora::TiXmlHandle xmlHandle) |
bool | RemoveDeltaRayHits (const TensorType::ElementList &elementList) const |
Remove hits from cosmic ray clusters that belong to a child delta ray. More... | |
virtual bool | PassElementChecks (const TensorType::Element &element, const pandora::HitType hitType) const |
Determine whether element satifies simple checks. More... | |
bool | IsContaminated (const TensorType::Element &element, const pandora::HitType hitType) const |
Determine whether the cosmic ray cluster under investigation has delta ray contamination. More... | |
void | SplitMuonCluster (const TensorType::Element &element, const pandora::HitType hitType, const pandora::CaloHitList &deltaRayHits) const |
Remove collected delta ray hits from the cosmic ray pfo. More... | |
Private Attributes | |
unsigned int | m_slidingFitWindow |
The sliding fit window used in cosmic ray parameterisations. More... | |
float | m_minDeviationFromTransverse |
The minimum deviation from transverse required to avoid mistakes. More... | |
float | m_contaminationWindow |
The distance in which to search for delta ray contamination in the cosmic ray track. More... | |
unsigned int | m_significantHitThreshold |
The threshold number of hits which define significant contimination. More... | |
float | m_minDistanceFromMuon |
The minimum distance of a hit from the cosmic ray track required for removal. More... | |
float | m_maxDistanceToCollected |
The maximim distance of a hit from the projected delta ray hits required for removal. More... | |
DeltaRayRemovalTool class.
Definition at line 19 of file DeltaRayRemovalTool.h.
|
inherited |
Definition at line 21 of file RemovalBaseTool.h.
|
inherited |
Definition at line 102 of file ThreeViewDeltaRayMatchingAlgorithm.h.
|
inherited |
Definition at line 101 of file ThreeViewDeltaRayMatchingAlgorithm.h.
lar_content::DeltaRayRemovalTool::DeltaRayRemovalTool | ( | ) |
Default constructor.
Definition at line 23 of file DeltaRayRemovalTool.cc.
|
protectedinherited |
Collect the hits that are closest to and can be projected onto a defined line.
pCluster | the address of the input cluster containing the hits to be investigated |
lowerBoundary | the start position of the line |
upperBoundary | the end position of the line |
collectedHits | the collected hits |
Definition at line 152 of file RemovalBaseTool.cc.
References lar_content::RemovalBaseTool::IsCloseToLine(), lar_content::RemovalBaseTool::IsInLineSegment(), and lar_content::RemovalBaseTool::m_distanceToLine.
Referenced by IsContaminated().
|
protectedinherited |
Determine whether the input element is the best to use to modify the contaminated cluster (best is defined by the total hit count)
element | the tensor element |
hitType | the hit type of the cluster under investigation |
elementList | the tensor element list |
modifiedClusters | the set of modified clusters |
Definition at line 78 of file RemovalBaseTool.cc.
References lar_content::RemovalBaseTool::PassElementChecks().
Referenced by lar_content::CosmicRayRemovalTool::RemoveCosmicRayHits(), and RemoveDeltaRayHits().
|
protectedinherited |
Whether a given position is close to a defined line.
hitPosition | the input position |
lineStart | the start position of the line |
lineEnd | the end position of the line |
distanceToLine | the definition of close |
Definition at line 113 of file RemovalBaseTool.cc.
Referenced by lar_content::RemovalBaseTool::FindExtrapolatedHits(), and lar_content::CosmicRayRemovalTool::IsContaminated().
|
private |
Determine whether the cosmic ray cluster under investigation has delta ray contamination.
element | the tensor element |
hitType | the hit type of the view under investigation |
Definition at line 126 of file DeltaRayRemovalTool.cc.
References f, lar_content::RemovalBaseTool::FindExtrapolatedHits(), lar_content::LArClusterHelper::GetClosestPositions(), lar_content::TwoDSlidingFitResult::GetGlobalDirection(), lar_content::TwoDSlidingFitResult::GetLayerFitResultMap(), lar_content::NViewDeltaRayMatchingAlgorithm< T >::GetMuonCluster(), lar_content::LArGeometryHelper::GetWirePitch(), m_contaminationWindow, m_minDeviationFromTransverse, lar_content::DeltaRayTensorTool::m_pParentAlgorithm, m_significantHitThreshold, and m_slidingFitWindow.
Referenced by RemoveDeltaRayHits().
|
protectedinherited |
Whether the projection of a given position lies on a defined line.
lowerBoundary | the start position of the line |
upperBoundary | the end position of the line |
point | the input position |
Definition at line 129 of file RemovalBaseTool.cc.
Referenced by lar_content::RemovalBaseTool::FindExtrapolatedHits(), and lar_content::CosmicRayRemovalTool::IsContaminated().
|
protectedinherited |
Determine whether the matched clusters suggest that the delta ray is at the endpoint of the cosmic ray (and is likely to be a michel)
element | the tensor element |
ignoreHitType | whether to ignore the cluster under investigation |
hitTypeToIgnore | the hit type to ignore |
Definition at line 42 of file RemovalBaseTool.cc.
References lar_content::NViewDeltaRayMatchingAlgorithm< T >::GetMuonCluster(), and lar_content::DeltaRayTensorTool::m_pParentAlgorithm.
Referenced by PassElementChecks(), and lar_content::CosmicRayRemovalTool::PassElementChecks().
|
privatevirtual |
Determine whether element satifies simple checks.
element | the tensor element |
hitType | the hit type of the cluster under investigation |
Implements lar_content::RemovalBaseTool.
Definition at line 115 of file DeltaRayRemovalTool.cc.
References lar_content::RemovalBaseTool::IsMuonEndpoint(), and lar_content::RemovalBaseTool::PassElementChecks().
Referenced by RemoveDeltaRayHits().
|
protectedinherited |
Use two views of a delta ray pfo to calculate projected positions in a given third view.
element | the tensor element |
hitType | the view to be projected into |
projectedPositions | the output list of projected positions |
Definition at line 172 of file RemovalBaseTool.cc.
References lar_content::NViewDeltaRayMatchingAlgorithm< T >::GetProjectedPositions(), and lar_content::DeltaRayTensorTool::m_pParentAlgorithm.
Referenced by lar_content::CosmicRayRemovalTool::CreateSeed().
|
privatevirtual |
Implements lar_content::RemovalBaseTool.
Definition at line 201 of file DeltaRayRemovalTool.cc.
References m_contaminationWindow, m_maxDistanceToCollected, m_minDeviationFromTransverse, m_minDistanceFromMuon, m_significantHitThreshold, and m_slidingFitWindow.
|
private |
Remove hits from cosmic ray clusters that belong to a child delta ray.
elementList | the tensor element list |
Definition at line 69 of file DeltaRayRemovalTool.cc.
References lar_content::NViewDeltaRayMatchingAlgorithm< T >::CollectHitsFromMuon(), lar_content::RemovalBaseTool::IsBestElement(), IsContaminated(), m_maxDistanceToCollected, m_minDistanceFromMuon, lar_content::DeltaRayTensorTool::m_pParentAlgorithm, PassElementChecks(), and SplitMuonCluster().
Referenced by Run().
|
privatevirtual |
Run the algorithm tool.
pAlgorithm | address of the calling algorithm |
overlapTensor | the overlap tensor |
Implements lar_content::RemovalBaseTool.
Definition at line 35 of file DeltaRayRemovalTool.cc.
References lar_content::OverlapTensor< T >::GetConnectedElements(), lar_content::OverlapTensor< T >::GetSortedKeyClusters(), lar_content::DeltaRayTensorTool::m_pParentAlgorithm, and RemoveDeltaRayHits().
|
private |
Remove collected delta ray hits from the cosmic ray pfo.
element | the tensor element |
hitType | the hit type of the cluster under investigation |
deltaRayHits | the list of delta ray hits to remove |
Definition at line 178 of file DeltaRayRemovalTool.cc.
References lar_content::NViewMatchingAlgorithm< T >::GetClusterListName(), lar_content::NViewDeltaRayMatchingAlgorithm< T >::GetMuonCluster(), lar_content::DeltaRayTensorTool::m_pParentAlgorithm, lar_content::NViewDeltaRayMatchingAlgorithm< T >::SplitMuonCluster(), lar_content::NViewDeltaRayMatchingAlgorithm< T >::UpdateForNewClusters(), and lar_content::NViewDeltaRayMatchingAlgorithm< T >::UpdateUponDeletion().
Referenced by RemoveDeltaRayHits().
|
private |
The distance in which to search for delta ray contamination in the cosmic ray track.
Definition at line 71 of file DeltaRayRemovalTool.h.
Referenced by IsContaminated(), and ReadSettings().
|
protectedinherited |
The maximum perpendicular distance of a position to a line for it to be considered close.
Definition at line 115 of file RemovalBaseTool.h.
Referenced by lar_content::RemovalBaseTool::FindExtrapolatedHits(), lar_content::CosmicRayRemovalTool::IsContaminated(), and lar_content::RemovalBaseTool::ReadSettings().
|
private |
The maximim distance of a hit from the projected delta ray hits required for removal.
Definition at line 74 of file DeltaRayRemovalTool.h.
Referenced by ReadSettings(), and RemoveDeltaRayHits().
|
private |
The minimum deviation from transverse required to avoid mistakes.
Definition at line 70 of file DeltaRayRemovalTool.h.
Referenced by IsContaminated(), and ReadSettings().
|
private |
The minimum distance of a hit from the cosmic ray track required for removal.
Definition at line 73 of file DeltaRayRemovalTool.h.
Referenced by ReadSettings(), and RemoveDeltaRayHits().
|
protectedinherited |
The minimum delta ray - parent muon cluster separation required to investigate a delta/cosmic ray cluster.
Definition at line 114 of file RemovalBaseTool.h.
Referenced by lar_content::RemovalBaseTool::PassElementChecks(), and lar_content::RemovalBaseTool::ReadSettings().
|
inherited |
Address of the parent matching algorithm.
Definition at line 114 of file ThreeViewDeltaRayMatchingAlgorithm.h.
Referenced by lar_content::CosmicRayRemovalTool::CreateSeed(), lar_content::AmbiguousDeltaRayTool::ExamineConnectedElements(), lar_content::UnambiguousDeltaRayTool::ExamineUnambiguousElements(), lar_content::CosmicRayRemovalTool::GrowSeed(), IsContaminated(), lar_content::CosmicRayRemovalTool::IsContaminated(), lar_content::RemovalBaseTool::IsMuonEndpoint(), lar_content::DeltaRayMergeTool::MakeOneCommonViewMerges(), lar_content::DeltaRayMergeTool::MakeTwoCommonViewMerges(), lar_content::RemovalBaseTool::PassElementChecks(), lar_content::RemovalBaseTool::ProjectDeltaRayPositions(), lar_content::CosmicRayRemovalTool::ReclusterRemnant(), RemoveDeltaRayHits(), lar_content::DeltaRayMergeTool::Run(), lar_content::UnambiguousDeltaRayTool::Run(), lar_content::AmbiguousDeltaRayTool::Run(), Run(), lar_content::CosmicRayRemovalTool::Run(), lar_content::CosmicRayRemovalTool::SplitDeltaRayCluster(), and SplitMuonCluster().
|
private |
The threshold number of hits which define significant contimination.
Definition at line 72 of file DeltaRayRemovalTool.h.
Referenced by IsContaminated(), and ReadSettings().
|
private |
The sliding fit window used in cosmic ray parameterisations.
Definition at line 69 of file DeltaRayRemovalTool.h.
Referenced by IsContaminated(), and ReadSettings().