Pandora
Pandora source code navigator
|
TwoViewTransverseTracksAlgorithm class. More...
#include "TwoViewTransverseTracksAlgorithm.h"
Public Types | |
typedef NViewTrackMatchingAlgorithm< TwoViewMatchingControl< TwoViewTransverseOverlapResult > > | BaseAlgorithm |
typedef std::set< unsigned int > | UIntSet |
typedef T | MatchingType |
Public Member Functions | |
TwoViewTransverseTracksAlgorithm () | |
Default constructor. | |
const TwoDSlidingFitResult & | GetCachedSlidingFitResult (const pandora::Cluster *const pCluster) const |
Get a sliding fit result from the algorithm cache. | |
unsigned int | GetSlidingFitWindow () const |
Get the layer window for the sliding linear fits. | |
virtual bool | MakeClusterSplits (const SplitPositionMap &splitPositionMap) |
Make cluster splits. | |
virtual bool | MakeClusterSplit (const pandora::CartesianVector &splitPosition, const pandora::Cluster *&pCurrentCluster, const pandora::Cluster *&pLowXCluster, const pandora::Cluster *&pHighXCluster) const |
Make a cluster split. | |
virtual void | UpdateForNewCluster (const pandora::Cluster *const pNewCluster) |
Update to reflect addition of a new cluster to the problem space. | |
virtual void | UpdateUponDeletion (const pandora::Cluster *const pDeletedCluster) |
Update to reflect cluster deletion. | |
virtual void | SelectInputClusters (const pandora::ClusterList *const pInputClusterList, pandora::ClusterList &selectedClusterList) const |
Select a subset of input clusters for processing in this algorithm. | |
virtual void | PrepareInputClusters (pandora::ClusterList &preparedClusterList) |
Perform any preparatory steps required on the input clusters, e.g. caching expensive fit results. | |
virtual void | SetPfoParticleId (PandoraContentApi::ParticleFlowObject::Parameters &pfoParameters) const |
Set pfo particle id. | |
const std::string & | GetClusterListName (const pandora::HitType hitType) const |
Get the cluster list name corresponding to a specified hit type. | |
const pandora::ClusterList & | GetInputClusterList (const pandora::HitType hitType) const |
Get the input cluster list corresponding to a specified hit type. | |
const pandora::ClusterList & | GetSelectedClusterList (const pandora::HitType hitType) const |
Get the selected cluster list corresponding to a specified hit type. | |
virtual bool | MakeClusterMerges (const ClusterMergeMap &clusterMergeMap) |
Merge clusters together. | |
virtual bool | CreateThreeDParticles (const ProtoParticleVector &protoParticleVector) |
Create particles using findings from recent algorithm processing. | |
virtual void | SetPfoParameters (const ProtoParticle &protoParticle, PandoraContentApi::ParticleFlowObject::Parameters &pfoParameters) const |
Set Pfo properties. | |
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. | |
Static Public Member Functions | |
static bool | SortSplitPositions (const pandora::CartesianVector &lhs, const pandora::CartesianVector &rhs) |
Sort split position cartesian vectors by increasing x coordinate. | |
Protected Member Functions | |
void | AddToSlidingFitCache (const pandora::Cluster *const pCluster) |
Add a new sliding fit result, for the specified cluster, to the algorithm cache. | |
void | RemoveFromSlidingFitCache (const pandora::Cluster *const pCluster) |
Remova an existing sliding fit result, for the specified cluster, from the algorithm cache. | |
virtual void | TidyUp () |
Tidy member variables in derived class. | |
MatchingType & | GetMatchingControl () |
Get the matching control. | |
virtual void | SelectAllInputClusters () |
Select a subset of input clusters for processing in this algorithm. | |
virtual void | PrepareAllInputClusters () |
Perform any preparatory steps required, e.g. caching expensive fit results for clusters. | |
virtual void | PerformMainLoop () |
Main loop over cluster combinations in order to populate the overlap container. Responsible for calling CalculateOverlapResult. | |
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 | |
MatchingType | m_matchingControl |
The matching control. | |
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::vector< TransverseMatrixTool * > | MatrixToolVector |
Private Member Functions | |
void | CalculateOverlapResult (const pandora::Cluster *const pCluster1, const pandora::Cluster *const pCluster2, const pandora::Cluster *const) |
Calculate cluster overlap result and store in container. | |
pandora::StatusCode | CalculateOverlapResult (const pandora::Cluster *const pCluster1, const pandora::Cluster *const pCluster2, TwoViewTransverseOverlapResult &overlapResult) |
Calculates the two view overlap result. | |
unsigned int | CalculateNumberOfLocallyMatchingSamplingPoints (const DiscreteProbabilityVector &discreteProbabilityVector1, const DiscreteProbabilityVector &discreteProbabilityVector2, std::mt19937 &randomNumberGenerator) |
Calculates the number of the sliding windows that contains charge bins that locally match. | |
float | GetPrimaryAxisDotDriftAxis (const pandora::Cluster *const pCluster) |
Get the dot product between the cluster's primary axis and the drift axis. | |
void | ExamineOverlapContainer () |
Examine contents of overlap container, collect together best-matching 2D particles and modify clusters as required. | |
pandora::StatusCode | ReadSettings (const pandora::TiXmlHandle xmlHandle) |
Read the algorithm settings. | |
pandora::StatusCode | Run () |
Run the algorithm. | |
Private Attributes | |
MatrixToolVector | m_algorithmToolVector |
The algorithm tool vector. | |
unsigned int | m_nMaxMatrixToolRepeats |
The maximum number of repeat loops over matrix tools. | |
unsigned int | m_downsampleFactor |
The downsampling (hit merging) applied to hits in the overlap region. | |
unsigned int | m_minSamples |
The minimum number of samples needed for comparing charges. | |
unsigned int | m_nPermutations |
The number of permutations for calculating p-values. | |
float | m_localMatchingScoreThreshold |
The minimum score to classify a local region as matching. | |
float | m_maxDotProduct |
float | m_minOverallMatchingScore |
M The maximum allowed cluster primary qxis Dot drift axis to fill the overlap result. | |
float | m_minOverallLocallyMatchedFraction |
The minimum required lcoally matched fraction to fill the overlap result. | |
std::mt19937 | m_randomNumberGenerator |
The random number generator. | |
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. | |
std::string | m_outputPfoListName |
The output pfo list name. | |
TwoViewTransverseTracksAlgorithm class.
Definition at line 32 of file TwoViewTransverseTracksAlgorithm.h.
typedef NViewTrackMatchingAlgorithm<TwoViewMatchingControl<TwoViewTransverseOverlapResult> > lar_content::TwoViewTransverseTracksAlgorithm::BaseAlgorithm |
Definition at line 35 of file TwoViewTransverseTracksAlgorithm.h.
|
inherited |
Definition at line 23 of file NViewMatchingAlgorithm.h.
|
private |
Definition at line 80 of file TwoViewTransverseTracksAlgorithm.h.
typedef std::set<unsigned int> lar_content::TwoViewTransverseTracksAlgorithm::UIntSet |
Definition at line 36 of file TwoViewTransverseTracksAlgorithm.h.
lar_content::TwoViewTransverseTracksAlgorithm::TwoViewTransverseTracksAlgorithm | ( | ) |
Default constructor.
Definition at line 23 of file TwoViewTransverseTracksAlgorithm.cc.
|
protectedinherited |
Add a new sliding fit result, for the specified cluster, to the algorithm cache.
pCluster | address of the relevant cluster |
Definition at line 95 of file NViewTrackMatchingAlgorithm.cc.
|
private |
Calculates the number of the sliding windows that contains charge bins that locally match.
discreteProbabilityVector1 | the view 0 discrete probability vector containing the charge information |
pCluster2 | the view 1 discrete probability vector containing the charge information |
randomNumberGenerator | a seeded random number generator |
Definition at line 145 of file TwoViewTransverseTracksAlgorithm.cc.
|
privatevirtual |
Calculate cluster overlap result and store in container.
pCluster1 | address of cluster1 |
pCluster2 | address of cluster2 |
pCluster3 | address of cluster3 |
Implements lar_content::MatchingBaseAlgorithm.
Definition at line 38 of file TwoViewTransverseTracksAlgorithm.cc.
|
private |
Calculates the two view overlap result.
pCluster1 | the view 0 cluster |
pCluster2 | the view 1 cluster |
overlapResult | the two view overlap result |
Definition at line 52 of file TwoViewTransverseTracksAlgorithm.cc.
|
virtualinherited |
Create particles using findings from recent algorithm processing.
protoParticleVector | the proto particle vector |
whether | particles were created |
Definition at line 88 of file MatchingBaseAlgorithm.cc.
|
privatevirtual |
Examine contents of overlap container, collect together best-matching 2D particles and modify clusters as required.
Implements lar_content::MatchingBaseAlgorithm.
Definition at line 213 of file TwoViewTransverseTracksAlgorithm.cc.
|
inherited |
Get a sliding fit result from the algorithm cache.
pCluster | address of the relevant cluster |
Definition at line 44 of file NViewTrackMatchingAlgorithm.cc.
|
virtualinherited |
Get the cluster list name corresponding to a specified hit type.
hitType | the hit type |
Implements lar_content::MatchingBaseAlgorithm.
Definition at line 57 of file NViewMatchingAlgorithm.cc.
|
virtualinherited |
Get the input cluster list corresponding to a specified hit type.
hitType | the hit type |
Implements lar_content::MatchingBaseAlgorithm.
Definition at line 65 of file NViewMatchingAlgorithm.cc.
|
inlineinherited |
|
inlineprotectedinherited |
Get the matching control.
Definition at line 59 of file NViewMatchingAlgorithm.h.
|
inlineinherited |
|
private |
Get the dot product between the cluster's primary axis and the drift axis.
pCluster | the cluster |
Definition at line 196 of file TwoViewTransverseTracksAlgorithm.cc.
|
virtualinherited |
Get the selected cluster list corresponding to a specified hit type.
hitType | the hit type |
Implements lar_content::MatchingBaseAlgorithm.
Definition at line 73 of file NViewMatchingAlgorithm.cc.
|
inlineinherited |
Get the layer window for the sliding linear fits.
Definition at line 51 of file NViewTrackMatchingAlgorithm.h.
|
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.
|
virtualinherited |
Merge clusters together.
clusterMergeMap | the cluster merge map |
Definition at line 48 of file MatchingBaseAlgorithm.cc.
|
virtualinherited |
Make a cluster split.
splitPosition | the split position |
pCurrentCluster | the cluster to split |
pLowXCluster | to receive the low x cluster |
pHighXCluster | to receive the high x cluster |
Definition at line 72 of file NViewTrackMatchingAlgorithm.cc.
|
virtualinherited |
Make cluster splits.
splitPositionMap | the split position map |
Definition at line 60 of file NViewTrackMatchingAlgorithm.cc.
|
protectedvirtualinherited |
Main loop over cluster combinations in order to populate the overlap container. Responsible for calling CalculateOverlapResult.
Implements lar_content::MatchingBaseAlgorithm.
Reimplemented in lar_content::ThreeViewTrackFragmentsAlgorithm.
Definition at line 105 of file NViewMatchingAlgorithm.cc.
|
protectedvirtualinherited |
Perform any preparatory steps required, e.g. caching expensive fit results for clusters.
Implements lar_content::MatchingBaseAlgorithm.
Definition at line 89 of file NViewMatchingAlgorithm.cc.
|
virtualinherited |
Perform any preparatory steps required on the input clusters, e.g. caching expensive fit results.
preparedClusterList | to receive the prepared cluster list, non const so as to be able to modify input selected list |
Reimplemented from lar_content::MatchingBaseAlgorithm.
Definition at line 86 of file NViewTrackMatchingAlgorithm.cc.
|
privatevirtual |
Read the algorithm settings.
xmlHandle | the relevant xml handle |
Reimplemented from lar_content::NViewTrackMatchingAlgorithm< TwoViewMatchingControl< TwoViewTransverseOverlapResult > >.
Definition at line 234 of file TwoViewTransverseTracksAlgorithm.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.
|
protectedinherited |
Remova an existing sliding fit result, for the specified cluster, from the algorithm cache.
pCluster | address of the relevant cluster |
Definition at line 102 of file NViewTrackMatchingAlgorithm.cc.
|
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.
|
privatevirtualinherited |
Run the algorithm.
Implements pandora::Algorithm.
Definition at line 135 of file MatchingBaseAlgorithm.cc.
|
protectedvirtualinherited |
Select a subset of input clusters for processing in this algorithm.
Implements lar_content::MatchingBaseAlgorithm.
Definition at line 81 of file NViewMatchingAlgorithm.cc.
|
virtualinherited |
Select a subset of input clusters for processing in this algorithm.
pInputClusterList | address of an input cluster list |
selectedClusterList | to receive the selected cluster list |
Reimplemented from lar_content::MatchingBaseAlgorithm.
Definition at line 85 of file NViewTrackMatchingAlgorithm.cc.
|
virtualinherited |
Set Pfo properties.
protoParticle | the input proto particle |
pfoParameters | the output pfo parameters |
Definition at line 116 of file MatchingBaseAlgorithm.cc.
|
virtualinherited |
Set pfo particle id.
pfoParameters | the output pfo parameters |
Reimplemented from lar_content::MatchingBaseAlgorithm.
Definition at line 87 of file NViewTrackMatchingAlgorithm.cc.
|
staticinherited |
Sort split position cartesian vectors by increasing x coordinate.
lhs | the first cartesian vector |
rhs | the second cartesian vector |
Definition at line 81 of file NViewTrackMatchingAlgorithm.cc.
|
protectedvirtualinherited |
Tidy member variables in derived class.
Reimplemented from lar_content::NViewMatchingAlgorithm< T >.
Definition at line 104 of file NViewTrackMatchingAlgorithm.cc.
|
virtualinherited |
Update to reflect addition of a new cluster to the problem space.
pNewCluster | address of the new cluster |
Reimplemented from lar_content::NViewMatchingAlgorithm< T >.
Definition at line 83 of file NViewTrackMatchingAlgorithm.cc.
|
virtualinherited |
Update to reflect cluster deletion.
pDeletedCluster | address of the deleted cluster |
Reimplemented from lar_content::NViewMatchingAlgorithm< T >.
Definition at line 84 of file NViewTrackMatchingAlgorithm.cc.
|
private |
The algorithm tool vector.
Definition at line 81 of file TwoViewTransverseTracksAlgorithm.h.
|
private |
The downsampling (hit merging) applied to hits in the overlap region.
Definition at line 84 of file TwoViewTransverseTracksAlgorithm.h.
|
protectedinherited |
|
private |
The minimum score to classify a local region as matching.
Definition at line 87 of file TwoViewTransverseTracksAlgorithm.h.
|
protectedinherited |
The matching control.
Definition at line 53 of file NViewMatchingAlgorithm.h.
|
private |
Definition at line 88 of file TwoViewTransverseTracksAlgorithm.h.
|
privateinherited |
The min number of hits in base cluster selection method.
Definition at line 111 of file NViewTrackMatchingAlgorithm.h.
|
privateinherited |
The min length (squared) in base cluster selection method.
Definition at line 112 of file NViewTrackMatchingAlgorithm.h.
|
private |
The minimum required lcoally matched fraction to fill the overlap result.
Definition at line 90 of file TwoViewTransverseTracksAlgorithm.h.
|
private |
M The maximum allowed cluster primary qxis Dot drift axis to fill the overlap result.
The minimum required global matching score to fill the overlap result
Definition at line 89 of file TwoViewTransverseTracksAlgorithm.h.
|
private |
The minimum number of samples needed for comparing charges.
Definition at line 85 of file TwoViewTransverseTracksAlgorithm.h.
|
private |
The maximum number of repeat loops over matrix tools.
Definition at line 83 of file TwoViewTransverseTracksAlgorithm.h.
|
private |
The number of permutations for calculating p-values.
Definition at line 86 of file TwoViewTransverseTracksAlgorithm.h.
|
privateinherited |
The output pfo list name.
Definition at line 181 of file MatchingBaseAlgorithm.h.
|
protectedinherited |
|
private |
The random number generator.
Definition at line 91 of file TwoViewTransverseTracksAlgorithm.h.
|
privateinherited |
The sliding fit result map.
Definition at line 109 of file NViewTrackMatchingAlgorithm.h.
|
privateinherited |
The layer window for the sliding linear fits.
Definition at line 108 of file NViewTrackMatchingAlgorithm.h.
|
protectedinherited |