LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
#include "ShowerSpineFinderTool.h"
Public Member Functions | |
ShowerSpineFinderTool () | |
pandora::StatusCode | Run (const pandora::CartesianVector &nuVertex3D, const pandora::CaloHitList *const pViewHitList, const pandora::HitType hitType, const pandora::CartesianVector &peakDirection, pandora::CaloHitList &unavailableHitList, pandora::CaloHitList &showerSpineHitList) |
Private Member Functions | |
pandora::StatusCode | ReadSettings (const pandora::TiXmlHandle xmlHandle) |
void | FindShowerSpine (const pandora::CaloHitList *const pViewHitList, const pandora::CartesianVector &nuVertex2D, const pandora::CartesianVector &initialDirection, pandora::CaloHitList &unavailableHitList, pandora::CaloHitList &showerSpineHitList) const |
Perform a running fit to collect the hits of the shower spine. More... | |
bool | CollectSubsectionHits (const TwoDSlidingFitResult &extrapolatedFit, const pandora::CartesianVector &extrapolatedStartPosition, const pandora::CartesianVector &extrapolatedEndPosition, const pandora::CartesianVector &extrapolatedDirection, const bool isEndDownstream, const pandora::CaloHitList *const pViewHitList, pandora::CartesianPointVector &runningFitPositionVector, pandora::CaloHitList &unavailableHitList, pandora::CaloHitList &showerSpineHitList) const |
Perform a running fit step: collect hits which lie close to the shower spine projection. More... | |
bool | IsCloseToLine (const pandora::CartesianVector &hitPosition, const pandora::CartesianVector &lineStart, const pandora::CartesianVector &lineDirection, const float distanceToLine) const |
Determine whether a hit lies close to the shower spine projection. More... | |
void | CollectConnectedHits (const pandora::CaloHitList &collectedHits, const pandora::CartesianVector &extrapolatedStartPosition, const pandora::CartesianVector &extrapolatedDirection, pandora::CartesianPointVector &runningFitPositionVector, pandora::CaloHitList &showerSpineHitList) const |
Add to the shower spine the connecting hits. More... | |
float | GetClosestDistance (const pandora::CartesianVector &position, const pandora::CartesianPointVector &testPositions) const |
Find the smallest distance between a position and a list of other positions. More... | |
Private Attributes | |
unsigned int | m_hitThresholdForSpine |
The hit threshold for a significant spine. More... | |
float | m_growingFitInitialLength |
The first step distance. More... | |
float | m_initialFitDistanceToLine |
The max. proximity to the spine projection for collection in the first step. More... | |
unsigned int | m_minInitialHitsFound |
The min. number of hits collected in the first step for continuation. More... | |
unsigned int | m_maxFittingHits |
The number of hits to consider in the running fit. More... | |
unsigned int | m_localSlidingFitWindow |
The standard sliding fit window for spine fits. More... | |
float | m_growingFitSegmentLength |
The standard step distance. More... | |
unsigned int | m_highResolutionSlidingFitWindow |
The high resolution sliding fit window for spine fits. More... | |
float | m_distanceToLine |
The max. proximity to the spine projection for collection. More... | |
float | m_hitConnectionDistance |
The max. separation between connected hits. More... | |
Definition at line 19 of file ShowerSpineFinderTool.h.
lar_content::ShowerSpineFinderTool::ShowerSpineFinderTool | ( | ) |
Definition at line 25 of file ShowerSpineFinderTool.cc.
|
private |
Add to the shower spine the connecting hits.
collectedHits | the input list of close hits |
extrapolatedStartPosition | the shower spine projection start position |
extrapolatedDirection | the shower spine projection direction |
runningFitPositionVector | the vector of the collected hit positions |
showerSpineHitList | the list of collected shower spine hits |
Definition at line 228 of file ShowerSpineFinderTool.cc.
References GetClosestDistance(), lar_content::LArHitWidthHelper::GetClosestDistance(), lar_content::LArHitWidthHelper::GetClosestPointToLine2D(), and m_hitConnectionDistance.
Referenced by CollectSubsectionHits().
|
private |
Perform a running fit step: collect hits which lie close to the shower spine projection.
extrapolatedFit | the fit to the hitherto collected hits |
extrapolatedStartPosition | the shower spine projection start position |
extrapolatedEndPosition | the shower spine projection end position |
extrapolatedDirection | the shower spine projection direction |
isEndDownstream | whether the shower direction is downstream (in Z) of the neutrino vertex |
pViewHitList | the 2D event hit list |
runningFitPositionVector | the vector of the hitherto collected hit positions |
unavailableHitList | protected hits that cannot be collected |
showerSpineHitList | the output list of shower spine hits |
Definition at line 155 of file ShowerSpineFinderTool.cc.
References CollectConnectedHits(), f, lar_content::LArHitWidthHelper::GetClosestPointToLine2D(), lar_content::TwoDSlidingFitResult::GetLocalPosition(), IsCloseToLine(), and m_distanceToLine.
Referenced by FindShowerSpine().
|
private |
Perform a running fit to collect the hits of the shower spine.
pViewHitList | the 2D event hit list |
nuVertex2D | the 2D neutrino vertex |
initialDirection | the initial direction of the pathway |
unavailableHitList | protected hits that cannot be collected |
showerSpineHitList | the output list of shower spine hits |
Definition at line 57 of file ShowerSpineFinderTool.cc.
References CollectSubsectionHits(), f, lar_content::TwoDSlidingFitResult::GetGlobalMaxLayerDirection(), lar_content::TwoDSlidingFitResult::GetGlobalMaxLayerPosition(), lar_content::TwoDSlidingFitResult::GetGlobalMinLayerDirection(), lar_content::TwoDSlidingFitResult::GetGlobalMinLayerPosition(), lar_content::LArGeometryHelper::GetWirePitch(), m_growingFitInitialLength, m_growingFitSegmentLength, m_highResolutionSlidingFitWindow, m_initialFitDistanceToLine, m_localSlidingFitWindow, m_maxFittingHits, and m_minInitialHitsFound.
Referenced by Run().
|
private |
Find the smallest distance between a position and a list of other positions.
position | the input position |
testPositions | the list of other positions |
Definition at line 262 of file ShowerSpineFinderTool.cc.
Referenced by CollectConnectedHits().
|
private |
Determine whether a hit lies close to the shower spine projection.
hitPosition | the hit position |
lineStart | the shower spine projection start position |
lineDirection | the shower spine projection direction |
distanceToLine | the comparison distance for 'is close' |
Definition at line 215 of file ShowerSpineFinderTool.cc.
Referenced by CollectSubsectionHits().
|
private |
Definition at line 279 of file ShowerSpineFinderTool.cc.
References m_distanceToLine, m_growingFitInitialLength, m_growingFitSegmentLength, m_highResolutionSlidingFitWindow, m_hitConnectionDistance, m_hitThresholdForSpine, m_initialFitDistanceToLine, m_localSlidingFitWindow, m_maxFittingHits, and m_minInitialHitsFound.
StatusCode lar_content::ShowerSpineFinderTool::Run | ( | const pandora::CartesianVector & | nuVertex3D, |
const pandora::CaloHitList *const | pViewHitList, | ||
const pandora::HitType | hitType, | ||
const pandora::CartesianVector & | peakDirection, | ||
pandora::CaloHitList & | unavailableHitList, | ||
pandora::CaloHitList & | showerSpineHitList | ||
) |
Definition at line 41 of file ShowerSpineFinderTool.cc.
References FindShowerSpine(), m_hitThresholdForSpine, and lar_content::LArGeometryHelper::ProjectPosition().
Referenced by lar_content::ElectronInitialRegionRefinementAlgorithm::BuildViewPathways(), and lar_content::ElectronInitialRegionRefinementAlgorithm::BuildViewProtoShowers().
|
private |
The max. proximity to the spine projection for collection.
Definition at line 106 of file ShowerSpineFinderTool.h.
Referenced by CollectSubsectionHits(), and ReadSettings().
|
private |
The first step distance.
Definition at line 99 of file ShowerSpineFinderTool.h.
Referenced by FindShowerSpine(), and ReadSettings().
|
private |
The standard step distance.
Definition at line 104 of file ShowerSpineFinderTool.h.
Referenced by FindShowerSpine(), and ReadSettings().
|
private |
The high resolution sliding fit window for spine fits.
Definition at line 105 of file ShowerSpineFinderTool.h.
Referenced by FindShowerSpine(), and ReadSettings().
|
private |
The max. separation between connected hits.
Definition at line 107 of file ShowerSpineFinderTool.h.
Referenced by CollectConnectedHits(), and ReadSettings().
|
private |
The hit threshold for a significant spine.
Definition at line 98 of file ShowerSpineFinderTool.h.
Referenced by ReadSettings(), and Run().
|
private |
The max. proximity to the spine projection for collection in the first step.
Definition at line 100 of file ShowerSpineFinderTool.h.
Referenced by FindShowerSpine(), and ReadSettings().
|
private |
The standard sliding fit window for spine fits.
Definition at line 103 of file ShowerSpineFinderTool.h.
Referenced by FindShowerSpine(), and ReadSettings().
|
private |
The number of hits to consider in the running fit.
Definition at line 102 of file ShowerSpineFinderTool.h.
Referenced by FindShowerSpine(), and ReadSettings().
|
private |
The min. number of hits collected in the first step for continuation.
Definition at line 101 of file ShowerSpineFinderTool.h.
Referenced by FindShowerSpine(), and ReadSettings().