Pandora
Pandora source code navigator
|
SplitShowersTool class. More...
#include "SplitShowersTool.h"
Public Types | |
typedef ThreeViewShowersAlgorithm::MatchingType::TensorType | TensorType |
typedef std::vector< TensorType::ElementList::const_iterator > | IteratorList |
Public Member Functions | |
SplitShowersTool () | |
Default constructor. | |
bool | Run (ThreeViewShowersAlgorithm *const pAlgorithm, TensorType &overlapTensor) |
Run the algorithm tool. | |
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 | |
void | FindSplitShowers (ThreeViewShowersAlgorithm *const pAlgorithm, const TensorType &overlapTensor, ClusterMergeMap &clusterMergeMap) const |
Find split showers, using information from the overlap tensor. | |
bool | PassesElementCuts (TensorType::ElementList::const_iterator eIter, const pandora::ClusterSet &usedClusters) const |
Whether a provided (iterator to a) tensor element passes the selection cuts for undershoots identification. | |
void | SelectTensorElements (TensorType::ElementList::const_iterator eIter, const TensorType::ElementList &elementList, const pandora::ClusterSet &usedClusters, IteratorList &iteratorList) const |
Select elements representing possible components of interest due to undershoots in clustering. | |
void | FindShowerMerges (ThreeViewShowersAlgorithm *const pAlgorithm, const IteratorList &iteratorList, pandora::ClusterSet &usedClusters, ClusterMergeMap &clusterMergeMap) const |
Get cluster merges specific elements of the tensor. | |
bool | CheckClusterProximities (ThreeViewShowersAlgorithm *const pAlgorithm, const pandora::ClusterList &clusterList) const |
Check the clusters in a provided cluster list are in suitable proximity for merging. | |
bool | CheckClusterVertexRelations (ThreeViewShowersAlgorithm *const pAlgorithm, const pandora::ClusterList &clusterList) const |
Check the consistency of the clusters in a provided cluster list with the event vertex, if available. | |
bool | CheckClusterSplitPositions (ThreeViewShowersAlgorithm *const pAlgorithm, const pandora::ClusterList &clusterListU, const pandora::ClusterList &clusterListV, const pandora::ClusterList &clusterListW) const |
Check the consistency of the split positions in the provided u, v and w cluster lists. | |
void | GetSplitXDetails (ThreeViewShowersAlgorithm *const pAlgorithm, const pandora::Cluster *const pClusterA, const pandora::Cluster *const pClusterB, float &splitXPosition, float &overlapX) const |
Get the x coordinate representing the midpoint between two clusters (hypothesis: clusters represent a split shower) | |
void | SpecifyClusterMerges (ThreeViewShowersAlgorithm *const pAlgorithm, const pandora::ClusterList &clusterList, ClusterMergeMap &clusterMergeMap) const |
Populate the cluster merge map, based on the information contained in the provided cluster list. | |
bool | ApplyChanges (ThreeViewShowersAlgorithm *const pAlgorithm, const ClusterMergeMap &clusterMergeMap) const |
Apply the changes cached in a cluster merge map and update the tensor accordingly. | |
pandora::StatusCode | ReadSettings (const pandora::TiXmlHandle xmlHandle) |
Read the algorithm settings. | |
Private Attributes | |
unsigned int | m_nCommonClusters |
The number of common clusters. | |
float | m_minMatchedFraction |
The min matched sampling point fraction for use as a key tensor element. | |
unsigned int | m_minMatchedSamplingPoints |
The min number of matched sampling points for use as a key tensor element. | |
bool | m_checkClusterProximities |
Whether to check the proximities of the candidate split shower clusters. | |
float | m_maxClusterSeparation |
The maximum separation for clusters to be merged. | |
bool | m_checkClusterVertexRelations |
Whether to check the consistency of the clusters with the event vertex. | |
float | m_minVertexLongitudinalDistance |
Vertex association check: min longitudinal distance cut. | |
float | m_maxVertexLongitudinalDistance |
Vertex association check: max longitudinal distance cut. | |
float | m_maxVertexTransverseDistance |
Vertex association check: max transverse distance cut. | |
float | m_vertexAngularAllowance |
Vertex association check: pointing angular allowance in degrees. | |
unsigned int | m_maxVertexAssociations |
The maximum number of vertex associations for clusters to be merged. | |
bool | m_checkClusterSplitPositions |
Whether to check the cluster split positions, if there are splits in multiple views. | |
float | m_vetoMergeXDifference |
The x distance between split positions in two views below which may refuse a merge. | |
float | m_vetoMergeXOverlap |
The x overlap between candidate cluster sliding fits below which may refuse a merge. | |
SplitShowersTool class.
Definition at line 19 of file SplitShowersTool.h.
|
inherited |
Definition at line 175 of file ThreeViewShowersAlgorithm.h.
|
inherited |
Definition at line 174 of file ThreeViewShowersAlgorithm.h.
lar_content::SplitShowersTool::SplitShowersTool | ( | ) |
Default constructor.
Definition at line 24 of file SplitShowersTool.cc.
|
private |
Apply the changes cached in a cluster merge map and update the tensor accordingly.
pAlgorithm | address of the calling algorithm |
clusterMergeMap | the cluster merge map |
Definition at line 366 of file SplitShowersTool.cc.
|
private |
Check the clusters in a provided cluster list are in suitable proximity for merging.
pAlgorithm | address of the calling algorithm |
clusterList | the cluster list |
Definition at line 221 of file SplitShowersTool.cc.
|
private |
Check the consistency of the split positions in the provided u, v and w cluster lists.
pAlgorithm | address of the calling algorithm |
clusterListU | the u cluster list |
clusterListV | the v cluster list |
clusterListW | the w cluster list |
Definition at line 288 of file SplitShowersTool.cc.
|
private |
Check the consistency of the clusters in a provided cluster list with the event vertex, if available.
pAlgorithm | address of the calling algorithm |
clusterList | the cluster list |
Definition at line 245 of file SplitShowersTool.cc.
|
private |
Get cluster merges specific elements of the tensor.
pAlgorithm | address of the calling algorithm |
iteratorList | list of iterators to relevant tensor elements |
usedClusters | the list of used clusters |
clusterMergeMap | to be populated with cluster merges |
Definition at line 149 of file SplitShowersTool.cc.
|
private |
Find split showers, using information from the overlap tensor.
pAlgorithm | address of the calling algorithm |
overlapTensor | the overlap tensor |
clusterMergeMap | to receive the list of cluster merges |
Definition at line 57 of file SplitShowersTool.cc.
|
inlineinherited |
|
inlineinherited |
|
private |
Get the x coordinate representing the midpoint between two clusters (hypothesis: clusters represent a split shower)
pAlgorithm | address of the calling algorithm |
pClusterA | the address of cluster A |
pClusterB | the address of cluster B |
splitXPosition | to receive the split position estimate |
overlapX | to receive the overlap estimate |
Definition at line 317 of file SplitShowersTool.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.
|
private |
Whether a provided (iterator to a) tensor element passes the selection cuts for undershoots identification.
eIter | the iterator to the tensor element |
usedClusters | the list of used clusters |
Definition at line 93 of file SplitShowersTool.cc.
|
privatevirtual |
Read the algorithm settings.
xmlHandle | the relevant xml handle |
Implements pandora::Process.
Definition at line 394 of file SplitShowersTool.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.
|
virtual |
Run the algorithm tool.
pAlgorithm | address of the calling algorithm |
overlapTensor | the overlap tensor |
Implements lar_content::ShowerTensorTool.
Definition at line 44 of file SplitShowersTool.cc.
|
private |
Select elements representing possible components of interest due to undershoots in clustering.
eIter | iterator to a candidate element |
elementList | the provided element list |
usedClusters | the list of used clusters |
iteratorList | to receive a list of iterators to relevant elements |
Definition at line 109 of file SplitShowersTool.cc.
|
private |
Populate the cluster merge map, based on the information contained in the provided cluster list.
pAlgorithm | address of the calling algorithm |
clusterList | the cluster list |
clusterMergeMap | to receive the populated cluster merge map |
Definition at line 344 of file SplitShowersTool.cc.
|
private |
Whether to check the proximities of the candidate split shower clusters.
Definition at line 133 of file SplitShowersTool.h.
|
private |
Whether to check the cluster split positions, if there are splits in multiple views.
Definition at line 143 of file SplitShowersTool.h.
|
private |
Whether to check the consistency of the clusters with the event vertex.
Definition at line 136 of file SplitShowersTool.h.
|
protectedinherited |
|
private |
The maximum separation for clusters to be merged.
Definition at line 134 of file SplitShowersTool.h.
|
private |
The maximum number of vertex associations for clusters to be merged.
Definition at line 141 of file SplitShowersTool.h.
|
private |
Vertex association check: max longitudinal distance cut.
Definition at line 138 of file SplitShowersTool.h.
|
private |
Vertex association check: max transverse distance cut.
Definition at line 139 of file SplitShowersTool.h.
|
private |
The min matched sampling point fraction for use as a key tensor element.
Definition at line 130 of file SplitShowersTool.h.
|
private |
The min number of matched sampling points for use as a key tensor element.
Definition at line 131 of file SplitShowersTool.h.
|
private |
Vertex association check: min longitudinal distance cut.
Definition at line 137 of file SplitShowersTool.h.
|
private |
The number of common clusters.
Definition at line 129 of file SplitShowersTool.h.
|
protectedinherited |
|
protectedinherited |
|
private |
Vertex association check: pointing angular allowance in degrees.
Definition at line 140 of file SplitShowersTool.h.
|
private |
The x distance between split positions in two views below which may refuse a merge.
Definition at line 144 of file SplitShowersTool.h.
|
private |
The x overlap between candidate cluster sliding fits below which may refuse a merge.
Definition at line 145 of file SplitShowersTool.h.