Pandora
Pandora source code navigator
|
CandidateVertexCreationAlgorithm::Algorithm class. More...
#include "CandidateVertexCreationAlgorithm.h"
Public Member Functions | |
CandidateVertexCreationAlgorithm () | |
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 Types | |
typedef std::unordered_map< const pandora::Cluster *, pandora::CartesianPointVector > | ClusterToSpacepointsMap |
Private Member Functions | |
pandora::StatusCode | Run () |
Run the algorithm. | |
void | SelectClusters (pandora::ClusterVector &clusterVectorU, pandora::ClusterVector &clusterVectorV, pandora::ClusterVector &clusterVectorW) |
Select a subset of input clusters (contained in the input list names) for processing in this algorithm. | |
void | CreateEndpointCandidates (const pandora::ClusterVector &clusterVector1, const pandora::ClusterVector &clusterVector2) const |
Create candidate vertex positions by comparing pairs of cluster end positions. | |
void | CreateEndpointVertex (const pandora::CartesianVector &position1, const pandora::HitType hitType1, const TwoDSlidingFitResult &fitResult2) const |
Create a candidate vertex position, using an end-point position from one cluster and sliding fit to a second cluster. | |
void | CreateCrossingCandidates (const pandora::ClusterVector &clusterVectorU, const pandora::ClusterVector &clusterVectorV, const pandora::ClusterVector &clusterVectorW) const |
Extrapolate 2D clusters, find where they cross, and match crossing points between views to create vertex candidates. | |
void | FindCrossingPoints (const pandora::ClusterVector &clusterVector, pandora::CartesianPointVector &crossingPoints) const |
Identify where (extrapolated) clusters plausibly cross in 2D. | |
void | GetSpacepoints (const pandora::Cluster *const pCluster, pandora::CartesianPointVector &spacePoints) const |
Get a list of spacepoints representing cluster 2D hit positions and extrapolated positions. | |
void | FindCrossingPoints (const pandora::CartesianPointVector &spacepoints1, const pandora::CartesianPointVector &spacepoints2, pandora::CartesianPointVector &crossingPoints) const |
Identify where (extrapolated) clusters plausibly cross in 2D. | |
void | CreateCrossingVertices (const pandora::CartesianPointVector &crossingPoints1, const pandora::CartesianPointVector &crossingPoints2, const pandora::HitType hitType1, const pandora::HitType hitType2, unsigned int &nCrossingCandidates) const |
Attempt to create candidate vertex positions, using 2D crossing points in 2 views. | |
void | AddInputVertices () const |
Add candidate vertices from any input vertices. | |
void | AddToSlidingFitCache (const pandora::Cluster *const pCluster) |
Creates a 2D sliding fit of a cluster and stores it for later use. | |
const TwoDSlidingFitResult & | GetCachedSlidingFitResult (const pandora::Cluster *const pCluster) const |
Get a sliding fit result from the algorithm cache. | |
void | TidyUp () |
Clear relevant algorithm member variables between events. | |
pandora::StatusCode | ReadSettings (const pandora::TiXmlHandle xmlHandle) |
Read the algorithm settings. | |
Private Attributes | |
pandora::StringVector | m_inputClusterListNames |
The list of cluster list names. | |
std::string | m_inputVertexListName |
The list name for existing candidate vertices. | |
std::string | m_outputVertexListName |
The name under which to save the output vertex list. | |
bool | m_replaceCurrentVertexList |
Whether to replace the current vertex list with the output list. | |
unsigned int | m_slidingFitWindow |
The layer window for the sliding linear fits. | |
TwoDSlidingFitResultMap | m_slidingFitResultMap |
The sliding fit result map. | |
unsigned int | m_minClusterCaloHits |
The min number of hits in base cluster selection method. | |
float | m_minClusterLengthSquared |
The min length (squared) in base cluster selection method. | |
float | m_chiSquaredCut |
The chi squared cut (accept only 3D vertex positions with values below cut) | |
bool | m_enableEndpointCandidates |
Whether to create endpoint-based candidates. | |
float | m_maxEndpointXDiscrepancy |
The max cluster endpoint discrepancy. | |
bool | m_enableCrossingCandidates |
Whether to create crossing vertex candidates. | |
unsigned int | m_nMaxCrossingCandidates |
The max number of crossing candidates to create. | |
float | m_maxCrossingXDiscrepancy |
The max cluster endpoint discrepancy. | |
unsigned int | m_extrapolationNSteps |
Number of extrapolation steps, at each end of cluster, of specified size. | |
float | m_extrapolationStepSize |
The extrapolation step size in cm. | |
float | m_maxCrossingSeparationSquared |
The separation (squared) between spacepoints below which a crossing can be identified. | |
float | m_minNearbyCrossingDistanceSquared |
The minimum allowed distance between identified crossing positions. | |
bool | m_reducedCandidates |
Whether to reduce the number of candidates. | |
float | m_selectionCutFactorMax |
Maximum factor to multiply the base cluster selection cuts. | |
float | m_nClustersPassingMaxCutsPar |
Parameter for number of clusters passing the max base cluster selection cuts. | |
CandidateVertexCreationAlgorithm::Algorithm class.
Definition at line 23 of file CandidateVertexCreationAlgorithm.h.
|
private |
Definition at line 134 of file CandidateVertexCreationAlgorithm.h.
lar_content::CandidateVertexCreationAlgorithm::CandidateVertexCreationAlgorithm | ( | ) |
Default constructor.
Definition at line 23 of file CandidateVertexCreationAlgorithm.cc.
|
private |
Add candidate vertices from any input vertices.
Definition at line 386 of file CandidateVertexCreationAlgorithm.cc.
|
private |
Creates a 2D sliding fit of a cluster and stores it for later use.
pCluster | address of the relevant cluster |
Definition at line 414 of file CandidateVertexCreationAlgorithm.cc.
|
private |
Extrapolate 2D clusters, find where they cross, and match crossing points between views to create vertex candidates.
clusterVectorU | the clusters in the u view |
clusterVectorV | the clusters in the v view |
clusterVectorW | the clusters in the w view |
Definition at line 239 of file CandidateVertexCreationAlgorithm.cc.
|
private |
Attempt to create candidate vertex positions, using 2D crossing points in 2 views.
crossingPoints1 | the crossing points in view 1 |
crossingPoints2 | the crossing points in view 2 |
hitType1 | the hit type of crossing points 1 |
hitType2 | the hit type of crossing points 2 |
nCrossingCandidates | to count the number of crossing candidates created |
Definition at line 351 of file CandidateVertexCreationAlgorithm.cc.
|
private |
Create candidate vertex positions by comparing pairs of cluster end positions.
clusterVector1 | the clusters in view 1 |
clusterVector1 | the clusters in view 2 |
Definition at line 173 of file CandidateVertexCreationAlgorithm.cc.
|
private |
Create a candidate vertex position, using an end-point position from one cluster and sliding fit to a second cluster.
position1 | an end-point position for the first cluster |
hitType1 | the hit type of the first cluster |
fitResult2 | the two dimensional sliding fit result for the second cluster |
Definition at line 201 of file CandidateVertexCreationAlgorithm.cc.
|
private |
Identify where (extrapolated) clusters plausibly cross in 2D.
spacepoints1 | space points for cluster 1 |
spacepoints2 | space points for cluster 2 |
crossingPoints | to receive the list of plausible 2D crossing points |
Definition at line 304 of file CandidateVertexCreationAlgorithm.cc.
|
private |
Identify where (extrapolated) clusters plausibly cross in 2D.
clusterVector | the input clusters |
crossingPoints | to receive the 2D crossing points |
Definition at line 255 of file CandidateVertexCreationAlgorithm.cc.
|
private |
Get a sliding fit result from the algorithm cache.
pCluster | address of the relevant cluster |
Definition at line 425 of file CandidateVertexCreationAlgorithm.cc.
|
inlineinherited |
|
inlineinherited |
|
private |
Get a list of spacepoints representing cluster 2D hit positions and extrapolated positions.
pCluster | address of the cluster |
spacePoints | to receive the list of spacepoints |
Definition at line 279 of file CandidateVertexCreationAlgorithm.cc.
|
inlineinherited |
|
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.
|
privatevirtual |
Read the algorithm settings.
xmlHandle | the relevant xml handle |
Implements pandora::Process.
Definition at line 444 of file CandidateVertexCreationAlgorithm.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 46 of file CandidateVertexCreationAlgorithm.cc.
|
private |
Select a subset of input clusters (contained in the input list names) for processing in this algorithm.
clusterVectorU | to receive the selected clusters in the u view |
clusterVectorV | to receive the selected clusters in the v view |
clusterVectorW | to receive the selected clusters in the w view |
Definition at line 91 of file CandidateVertexCreationAlgorithm.cc.
|
private |
Clear relevant algorithm member variables between events.
Definition at line 437 of file CandidateVertexCreationAlgorithm.cc.
|
private |
The chi squared cut (accept only 3D vertex positions with values below cut)
Definition at line 146 of file CandidateVertexCreationAlgorithm.h.
|
private |
Whether to create crossing vertex candidates.
Definition at line 151 of file CandidateVertexCreationAlgorithm.h.
|
private |
Whether to create endpoint-based candidates.
Definition at line 148 of file CandidateVertexCreationAlgorithm.h.
|
private |
Number of extrapolation steps, at each end of cluster, of specified size.
Definition at line 154 of file CandidateVertexCreationAlgorithm.h.
|
private |
The extrapolation step size in cm.
Definition at line 155 of file CandidateVertexCreationAlgorithm.h.
|
private |
The list of cluster list names.
Definition at line 136 of file CandidateVertexCreationAlgorithm.h.
|
private |
The list name for existing candidate vertices.
Definition at line 137 of file CandidateVertexCreationAlgorithm.h.
|
protectedinherited |
|
private |
The separation (squared) between spacepoints below which a crossing can be identified.
Definition at line 156 of file CandidateVertexCreationAlgorithm.h.
|
private |
The max cluster endpoint discrepancy.
Definition at line 153 of file CandidateVertexCreationAlgorithm.h.
|
private |
The max cluster endpoint discrepancy.
Definition at line 149 of file CandidateVertexCreationAlgorithm.h.
|
private |
The min number of hits in base cluster selection method.
Definition at line 144 of file CandidateVertexCreationAlgorithm.h.
|
private |
The min length (squared) in base cluster selection method.
Definition at line 145 of file CandidateVertexCreationAlgorithm.h.
|
private |
The minimum allowed distance between identified crossing positions.
Definition at line 157 of file CandidateVertexCreationAlgorithm.h.
|
private |
Parameter for number of clusters passing the max base cluster selection cuts.
Definition at line 161 of file CandidateVertexCreationAlgorithm.h.
|
private |
The max number of crossing candidates to create.
Definition at line 152 of file CandidateVertexCreationAlgorithm.h.
|
private |
The name under which to save the output vertex list.
Definition at line 138 of file CandidateVertexCreationAlgorithm.h.
|
protectedinherited |
|
private |
Whether to reduce the number of candidates.
Definition at line 159 of file CandidateVertexCreationAlgorithm.h.
|
private |
Whether to replace the current vertex list with the output list.
Definition at line 139 of file CandidateVertexCreationAlgorithm.h.
|
private |
Maximum factor to multiply the base cluster selection cuts.
Definition at line 160 of file CandidateVertexCreationAlgorithm.h.
|
private |
The sliding fit result map.
Definition at line 142 of file CandidateVertexCreationAlgorithm.h.
|
private |
The layer window for the sliding linear fits.
Definition at line 141 of file CandidateVertexCreationAlgorithm.h.
|
protectedinherited |