![]() |
LArSoft
v10_06_00
Liquid Argon Software toolkit - https://larsoft.org/
|
ThreeDMultiReclusteringAlgorithm class. More...
#include "ThreeDMultiReclusteringAlgorithm.h"
Public Member Functions | |
ThreeDMultiReclusteringAlgorithm () | |
Default constructor. More... | |
~ThreeDMultiReclusteringAlgorithm ()=default | |
Default destructor. More... | |
Private Member Functions | |
pandora::StatusCode | Run () |
pandora::StatusCode | FreeClustersFromPfos (const pandora::PfoList &pfos, std::map< pandora::HitType, pandora::ClusterList > &viewToFreeClusters, std::map< const pandora::Pfo *const, pandora::ClusterList > &pfoToFreeClusters) const |
Remove clusters from the pfos and store them them in maps. More... | |
pandora::StatusCode | RelinkClustersToOriginalPfos (std::map< const pandora::Pfo *const, pandora::ClusterList > &pfoToClusters) const |
Remake the original pfos by adding back their removed clusters. More... | |
pandora::StatusCode | FreeCaloHitsFromClusters (const pandora::ClusterList &clusters, const pandora::HitType &view, pandora::CaloHitList &freeCaloHits) const |
Delete clusters of a single hit type and store the associated hits in a list. More... | |
pandora::StatusCode | BuildNewPfos (const pandora::ClusterList &clusters3D, std::map< pandora::HitType, pandora::CaloHitList > &viewToFreeCaloHits2D) const |
Create new pfos from the reclustered 3D clusters and original 2D hits. The original 2D hits are put into new 2D clusters that follow the new 3D clusters,. More... | |
pandora::StatusCode | Build2DClustersFrom3D (const pandora::Cluster *const pCluster3D, std::map< pandora::HitType, pandora::CaloHitList > &viewToFreeCaloHits2D, pandora::ClusterList &newClusters2D) const |
Create 2D clusters following a 3D cluster. More... | |
pandora::StatusCode | MopUpCaloHits (const pandora::CaloHitList &caloHits, const pandora::ClusterList &clusters, bool addAsIso) const |
Add hits to their nearest cluster. More... | |
pandora::StatusCode | CreatePfoFromClusters (const pandora::ClusterList &clusters) const |
Create a new pfo from a list of clusters. More... | |
pandora::StatusCode | ReadSettings (const pandora::TiXmlHandle xmlHandle) |
Private Attributes | |
std::string | m_pfoListName |
Name of list of pfos to consider for reclustering. More... | |
std::map< pandora::HitType, std::string > | m_clusterListNames |
Map of list names for 3D clusters that comprise the pfos and 2D U, V, W clusters that may need reclustering. More... | |
bool | m_mopUp2DCaloHits |
Add hits from reclustered 2D clusters without an associated 3D hit to the nearest new 2D cluster in their view. More... | |
std::vector< std::string > | m_clusteringAlgs |
The ordered list of clustering algorithms to use. More... | |
ThreeDReclusteringFigureOfMeritBaseTool * | m_pFomAlgTool |
The address of the figure of merit algorithm tool to use. More... | |
ThreeDMultiReclusteringAlgorithm class.
Definition at line 26 of file ThreeDMultiReclusteringAlgorithm.h.
lar_content::ThreeDMultiReclusteringAlgorithm::ThreeDMultiReclusteringAlgorithm | ( | ) |
Default constructor.
Definition at line 24 of file ThreeDMultiReclusteringAlgorithm.cc.
References m_mopUp2DCaloHits, and m_pFomAlgTool.
|
default |
Default destructor.
|
private |
Create 2D clusters following a 3D cluster.
pCluster3D | a 3D cluster |
viewToFreeCaloHits2D | map of hit type to original 2D hits that need to be clustered |
newClusters2D | output list of newly created 2D clusters |
Definition at line 224 of file ThreeDMultiReclusteringAlgorithm.cc.
References m_clusterListNames.
Referenced by BuildNewPfos().
|
private |
Create new pfos from the reclustered 3D clusters and original 2D hits. The original 2D hits are put into new 2D clusters that follow the new 3D clusters,.
clusters3D | list of reclustered 3D clusters |
viewToFreeCaloHits2D | map of hit type to original 2D hits that need to be clustered |
Definition at line 170 of file ThreeDMultiReclusteringAlgorithm.cc.
References Build2DClustersFrom3D(), CreatePfoFromClusters(), lar_content::LArClusterHelper::GetClusterHitType(), m_clusterListNames, m_mopUp2DCaloHits, m_pfoListName, and MopUpCaloHits().
Referenced by Run().
|
private |
Create a new pfo from a list of clusters.
clusters | list of clusters, expect a 3D and up to 3 2D clusters. |
Definition at line 307 of file ThreeDMultiReclusteringAlgorithm.cc.
References f.
Referenced by BuildNewPfos().
|
private |
Delete clusters of a single hit type and store the associated hits in a list.
clusters | list of clusters to be deleted |
view | hit type of the clusters |
freeCaloHits | output hits of the deleted clusters |
Definition at line 153 of file ThreeDMultiReclusteringAlgorithm.cc.
References m_clusterListNames.
Referenced by Run().
|
private |
Remove clusters from the pfos and store them them in maps.
pfos | pfo list |
viewToFreeClusters | output map of hit type to list of removed clusters |
pfoToFreeClusters | output map of original pfo to list of removed clusters |
Definition at line 117 of file ThreeDMultiReclusteringAlgorithm.cc.
References lar_content::LArPfoHelper::GetClusters().
Referenced by Run().
|
private |
Add hits to their nearest cluster.
caloHits | list of 2D hits of the same hit type to be added to nearest cluster |
clusters | list of 2D clusters of the same hit type as the caloHits to have hits added to them |
addAsIso | bool for adding the hits as isolated or not |
Definition at line 274 of file ThreeDMultiReclusteringAlgorithm.cc.
References larg4::dist(), and lar_content::LArClusterHelper::GetClosestDistance().
Referenced by BuildNewPfos().
|
private |
Definition at line 324 of file ThreeDMultiReclusteringAlgorithm.cc.
References m_clusteringAlgs, m_clusterListNames, m_mopUp2DCaloHits, m_pfoListName, and m_pFomAlgTool.
|
private |
Remake the original pfos by adding back their removed clusters.
pfoToClusters | map from pfo to a list of clusters |
Definition at line 142 of file ThreeDMultiReclusteringAlgorithm.cc.
Referenced by Run().
|
private |
Definition at line 33 of file ThreeDMultiReclusteringAlgorithm.cc.
References BuildNewPfos(), lar_content::ThreeDReclusteringFigureOfMeritBaseTool::CalcClusteringFom(), FreeCaloHitsFromClusters(), FreeClustersFromPfos(), lar_content::ThreeDReclusteringFigureOfMeritBaseTool::GetPfosToRecluster(), m_clusteringAlgs, m_clusterListNames, m_pfoListName, m_pFomAlgTool, and RelinkClustersToOriginalPfos().
|
private |
The ordered list of clustering algorithms to use.
Definition at line 107 of file ThreeDMultiReclusteringAlgorithm.h.
Referenced by ReadSettings(), and Run().
|
private |
Map of list names for 3D clusters that comprise the pfos and 2D U, V, W clusters that may need reclustering.
Definition at line 105 of file ThreeDMultiReclusteringAlgorithm.h.
Referenced by Build2DClustersFrom3D(), BuildNewPfos(), FreeCaloHitsFromClusters(), ReadSettings(), and Run().
|
private |
Add hits from reclustered 2D clusters without an associated 3D hit to the nearest new 2D cluster in their view.
Definition at line 106 of file ThreeDMultiReclusteringAlgorithm.h.
Referenced by BuildNewPfos(), ReadSettings(), and ThreeDMultiReclusteringAlgorithm().
|
private |
Name of list of pfos to consider for reclustering.
Definition at line 104 of file ThreeDMultiReclusteringAlgorithm.h.
Referenced by BuildNewPfos(), ReadSettings(), and Run().
|
private |
The address of the figure of merit algorithm tool to use.
Definition at line 108 of file ThreeDMultiReclusteringAlgorithm.h.
Referenced by ReadSettings(), Run(), and ThreeDMultiReclusteringAlgorithm().