Pandora
Pandora source code navigator
|
CosmicRaySplittingAlgorithm class. More...
#include "CosmicRaySplittingAlgorithm.h"
Public Member Functions | |
CosmicRaySplittingAlgorithm () | |
Default constructor. | |
const std::string & | GetType () const |
Get the type. | |
const std::string & | GetInstanceName () const |
Get the instance name. | |
const Pandora & | GetPandora () const |
Get the associated pandora instance. | |
Protected Member Functions | |
virtual StatusCode | Initialize () |
Perform any operations that must occur after reading settings, but before running the process. | |
virtual StatusCode | Reset () |
Perform any operations when pandora is reset, typically at the end of each event. | |
StatusCode | RegisterDetails (const Pandora *const pPandora, const std::string &type, const std::string &instanceName) |
Register i) the pandora instance that will run the process and ii) the process type. | |
Protected Attributes | |
const Pandora * | m_pPandora |
The pandora object that will run the process. | |
std::string | m_type |
The process type. | |
std::string | m_instanceName |
The process instance name. | |
Private Member Functions | |
pandora::StatusCode | Run () |
Run the algorithm. | |
pandora::StatusCode | ReadSettings (const pandora::TiXmlHandle xmlHandle) |
Read the algorithm settings. | |
void | GetListOfCleanClusters (const pandora::ClusterList *const pClusterList, pandora::ClusterVector &clusterVector) const |
Populate cluster vector with subset of cluster list, containing clusters judged to be clean. | |
void | BuildSlidingFitResultMap (const pandora::ClusterVector &clusterVector, TwoDSlidingFitResultMap &slidingFitResultMap) const |
Build the map of sliding fit results. | |
pandora::StatusCode | FindBestSplitPosition (const TwoDSlidingFitResult &slidingFitResult, pandora::CartesianVector &splitPosition, pandora::CartesianVector &splitDirection1, pandora::CartesianVector &splitDirection2) const |
Find the position of greatest scatter along a sliding linear fit. | |
pandora::StatusCode | ConfirmSplitPosition (const TwoDSlidingFitResult &branchSlidingFitResult, const TwoDSlidingFitResult &replacementSlidingFitResult, const pandora::CartesianVector &splitPosition, const pandora::CartesianVector &splitDirection1, const pandora::CartesianVector &splitDirection2, float &lengthSquared1, float &lengthSquared2) const |
Find a second replacement cluster that aligns with the scatter of the first branch cluster. | |
pandora::StatusCode | PerformSingleSplit (const pandora::Cluster *const pBranchCluster, const pandora::Cluster *const pReplacementCluster, const pandora::CartesianVector &splitPosition, const pandora::CartesianVector &forwardDirection, const pandora::CartesianVector &backwardDirection) const |
Split a branch cluster for case of one replacement cluster. | |
pandora::StatusCode | PerformDoubleSplit (const pandora::Cluster *const pBranchCluster, const pandora::Cluster *const pReplacementCluster1, const pandora::Cluster *const pReplacementCluster2, const pandora::CartesianVector &splitPosition, const pandora::CartesianVector &splitDirection1, const pandora::CartesianVector &splitDirection2) const |
Split a branch cluster for case of two replacement clusters. | |
void | GetCaloHitListToMove (const pandora::Cluster *const pBranchCluster, const pandora::Cluster *const pReplacementCluster, const pandora::CartesianVector &splitPosition, const pandora::CartesianVector &forwardDirection, const pandora::CartesianVector &backwardDirection, pandora::CaloHitList &caloHitList) const |
Get list of calo hits to move in order to split a branch cluster into two segments for case of one replacement cluster. | |
void | GetCaloHitListsToMove (const pandora::Cluster *const pBranchCluster, const pandora::CartesianVector &splitPosition, const pandora::CartesianVector &splitDirection1, const pandora::CartesianVector &splitDirection2, pandora::CaloHitList &caloHitList1, pandora::CaloHitList &caloHitList2) const |
Get lists of calo hits to move in order to split a branch cluster into two segments for case of two replacement clusters. | |
bool | IdentifyCrossedTracks (const pandora::Cluster *const pBranchCluster, const pandora::Cluster *const pReplacementCluster1, const pandora::Cluster *const pReplacementCluster2, const pandora::CartesianVector &splitPosition) const |
Identify crossed tracks formed from the branch cluster and its replacement cluster. | |
pandora::StatusCode | GetCaloHitListToKeep (const pandora::Cluster *const pBranchCluster, const pandora::CaloHitList &caloHitListToMove, pandora::CaloHitList &caloHitListToKeep) const |
Split the branch cluster and add hits to the replacement cluster. | |
pandora::StatusCode | SplitCluster (const pandora::Cluster *const pBranchCluster, const pandora::Cluster *const pReplacementCluster, const pandora::CaloHitList &caloHitListToMove) const |
Split the branch cluster and add hits to the replacement cluster. | |
Private Attributes | |
float | m_clusterMinLength |
minimum length of clusters for this algorithm | |
unsigned int | m_halfWindowLayers |
number of layers to use for half-window of sliding fit | |
float | m_samplingPitch |
sampling pitch for walking along sliding linear fit | |
float | m_maxCosSplittingAngle |
smallest scatter angle allowed when splitting cluster | |
float | m_minCosMergingAngle |
largest relative angle allowed when merging clusters | |
float | m_maxTransverseDisplacement |
maximum transverse displacement of associated clusters | |
float | m_maxLongitudinalDisplacement |
maximum longitudinal displacement of associated clusters | |
float | m_maxLongitudinalDisplacementSquared |
longitudinal displacement squared | |
CosmicRaySplittingAlgorithm class.
Definition at line 21 of file CosmicRaySplittingAlgorithm.h.
lar_content::CosmicRaySplittingAlgorithm::CosmicRaySplittingAlgorithm | ( | ) |
Default constructor.
Definition at line 22 of file CosmicRaySplittingAlgorithm.cc.
|
private |
Build the map of sliding fit results.
clusterVector | the input cluster vector |
slidingFitResultMap | the output sliding fit result map |
Definition at line 181 of file CosmicRaySplittingAlgorithm.cc.
|
private |
Find a second replacement cluster that aligns with the scatter of the first branch cluster.
branchSlidingFitResult | the sliding fit result for the branch cluster |
replacementSlidingFitResult | the sliding fit result for the replacement cluster |
splitPosition | the candidate split position on the branch cluster |
splitDirection1 | the first track direction just above the split position |
splitDirection2 | the second track direction just below the split position |
lengthSquared1 | figure of merit for association with first track direction |
lengthSquared2 | figure of merit for association with second track direction |
Definition at line 270 of file CosmicRaySplittingAlgorithm.cc.
|
private |
Find the position of greatest scatter along a sliding linear fit.
slidingFitResult | the input sliding linear fit result |
splitPosition | the position of greatest scatter |
splitDirection1 | the direction vector just above the scatter position |
splitDirection2 | the direction vector just below the scatter position |
Definition at line 207 of file CosmicRaySplittingAlgorithm.cc.
|
private |
Get lists of calo hits to move in order to split a branch cluster into two segments for case of two replacement clusters.
pBranchCluster | the branch cluster |
splitPosition | the split position |
splitDirection1 | the direction of the branch cluster just above the split position |
splitDirection2 | the direction of the branch cluster just below the split position |
caloHitList1 | the first segment to be split from the branch cluster |
caloHitList2 | the second segment to be split from the branch cluster |
Definition at line 449 of file CosmicRaySplittingAlgorithm.cc.
|
private |
Split the branch cluster and add hits to the replacement cluster.
pBranchCluster | the branch cluster |
caloHitListToMove | the list of hits to be removed from the branch cluster and added to the replacement cluster |
caloHitListToKeep | to receive the list of calo hits to keep |
Definition at line 491 of file CosmicRaySplittingAlgorithm.cc.
|
private |
Get list of calo hits to move in order to split a branch cluster into two segments for case of one replacement cluster.
pBranchCluster | the branch cluster |
pReplacementCluster | the replacement cluster |
splitPosition | the split position |
forwardDirection | the direction of the branch cluster just above the split position |
backwardDirection | the direction of the branch cluster just below the split position |
caloHitList | the output hits to be removed from the branch cluster |
Definition at line 397 of file CosmicRaySplittingAlgorithm.cc.
|
inlineinherited |
|
private |
Populate cluster vector with subset of cluster list, containing clusters judged to be clean.
pClusterList | address of the cluster list |
clusterVector | to receive the populated cluster vector |
Definition at line 164 of file CosmicRaySplittingAlgorithm.cc.
|
inlineinherited |
|
inlineinherited |
|
private |
Identify crossed tracks formed from the branch cluster and its replacement cluster.
pBranchCluster | the branch cluster |
pReplacementCluster1 | the first replacement cluster |
pReplacementCluster2 | the second replacement cluster |
splitPosition | the split position |
Definition at line 474 of file CosmicRaySplittingAlgorithm.cc.
|
inlineprotectedvirtualinherited |
Perform any operations that must occur after reading settings, but before running the process.
Reimplemented in lar_content::BdtBeamParticleIdTool, lar_content::BeamParticleIdTool, lar_content::CosmicRayTaggingTool, lar_content::EventReadingAlgorithm, lar_content::EventWritingAlgorithm, lar_content::LArPseudoLayerPlugin, lar_content::LArRotationalTransformationPlugin, EventReadingAlgorithm, and EventWritingAlgorithm.
Definition at line 126 of file Process.h.
|
private |
Split a branch cluster for case of two replacement clusters.
pBranchCluster | the branch cluster |
pReplacementCluster1 | the first replacement cluster |
pReplacementCluster2 | the second replacement cluster |
splitPosition | the split position |
splitDirection1 | the direction of the branch cluster just above the split position |
splitDirection2 | the direction of the branch cluster just below the split position |
Definition at line 371 of file CosmicRaySplittingAlgorithm.cc.
|
private |
Split a branch cluster for case of one replacement cluster.
pBranchCluster | the branch cluster |
pReplacementCluster | the replacement cluster |
splitPosition | the split position |
forwardDirection | the direction of the branch cluster just above the split position |
backwardDirection | the direction of the branch cluster just below the split position |
Definition at line 354 of file CosmicRaySplittingAlgorithm.cc.
|
privatevirtual |
Read the algorithm settings.
xmlHandle | the relevant xml handle |
Implements pandora::Process.
Definition at line 531 of file CosmicRaySplittingAlgorithm.cc.
|
inlineprotectedinherited |
Register i) the pandora instance that will run the process and ii) the process type.
pPandora | address of the pandora object that will run the process |
type | the process type |
instanceName | the process instance name |
Definition at line 146 of file Process.h.
|
inlineprotectedvirtualinherited |
Perform any operations when pandora is reset, typically at the end of each event.
Reimplemented in lar_content::MasterAlgorithm, lar_content::PostProcessingAlgorithm, and lar_content::PreProcessingAlgorithm.
Definition at line 133 of file Process.h.
|
privatevirtual |
Run the algorithm.
Implements pandora::Algorithm.
Definition at line 36 of file CosmicRaySplittingAlgorithm.cc.
|
private |
Split the branch cluster and add hits to the replacement cluster.
pBranchCluster | the branch cluster |
pReplacementCluster | the replacement cluster |
caloHitListToMove | the list of hits to be removed from the branch cluster and added to the replacement cluster |
Definition at line 513 of file CosmicRaySplittingAlgorithm.cc.
|
private |
minimum length of clusters for this algorithm
Definition at line 161 of file CosmicRaySplittingAlgorithm.h.
|
private |
number of layers to use for half-window of sliding fit
Definition at line 162 of file CosmicRaySplittingAlgorithm.h.
|
protectedinherited |
|
private |
smallest scatter angle allowed when splitting cluster
Definition at line 164 of file CosmicRaySplittingAlgorithm.h.
|
private |
maximum longitudinal displacement of associated clusters
Definition at line 167 of file CosmicRaySplittingAlgorithm.h.
|
private |
longitudinal displacement squared
Definition at line 168 of file CosmicRaySplittingAlgorithm.h.
|
private |
maximum transverse displacement of associated clusters
Definition at line 166 of file CosmicRaySplittingAlgorithm.h.
|
private |
largest relative angle allowed when merging clusters
Definition at line 165 of file CosmicRaySplittingAlgorithm.h.
|
protectedinherited |
|
private |
sampling pitch for walking along sliding linear fit
Definition at line 163 of file CosmicRaySplittingAlgorithm.h.
|
protectedinherited |