![]() |
LArSoft
v10_04_05
Liquid Argon Software toolkit - https://larsoft.org/
|
RecursivePfoMopUpAlgorithm class. More...
#include "ThreeDReclusteringAlgorithm.h"
Public Types | |
enum | FigureOfMeritType { CHEATED } |
FigureOfMerit type enumeration. More... | |
Public Member Functions | |
ThreeDReclusteringAlgorithm () | |
Default constructor. More... | |
~ThreeDReclusteringAlgorithm () | |
Destructor. More... | |
Private Types | |
typedef std::vector< ClusteringTool * > | ClusteringToolVector |
Private Member Functions | |
pandora::StatusCode | Run () |
pandora::StatusCode | RebuildPfo (const pandora::Pfo *pPfoToRebuild, pandora::ClusterList &newClustersList) |
Create new TwoD clusters and Pfos for each new ThreeD cluster in newClustersList. More... | |
pandora::StatusCode | BuildNewTwoDClusters (const pandora::Pfo *pPfoToRebuild, pandora::ClusterList &newClustersList) |
Create new TwoD clusters for each new ThreeD cluster in newClustersList. More... | |
pandora::StatusCode | BuildNewPfos (const pandora::Pfo *pPfoToRebuild, pandora::ClusterList &newClustersList) |
Create new Pfos for each new ThreeD cluster in newClustersList. More... | |
float | GetFigureOfMerit (const pandora::CaloHitList &mergedClusterCaloHitList3D) |
Loop over all specified figure of merit names, calculate figures of merit for the CaloHitList under consideration, and return the smallest FOM. More... | |
float | GetFigureOfMerit (const std::string &figureOfMeritName, const pandora::CaloHitList &mergedClusterCaloHitList3D) |
Calculate the specified figure of merit for the CaloHitList under consideration, and return the smallest FOM. More... | |
float | GetFigureOfMerit (const std::vector< pandora::CaloHitList > &newClustersCaloHitList3D) |
Loop over all specified figure of merit names, calculate figures of merit for each CaloHitList in the provided vector, and return the smallest FOM. More... | |
float | GetFigureOfMerit (const std::string &figureOfMeritName, const std::vector< pandora::CaloHitList > &newClustersCaloHitLists3D) |
Calculate the specified figure of merit for each CaloHitList in the provided vector, and return the smallest FOM. More... | |
float | GetCheatedFigureOfMerit (const pandora::CaloHitList &mergedClusterCaloHitList3D) |
Get cheated FOM as an impurity: the fraction of hits that are NOT contributed by the main MC particle. If clustering was perfect, cheated FOM would always be 0. More... | |
bool | PassesCutsForReclustering (const pandora::ParticleFlowObject *const pPfo) |
Select pfos to be reclustered if it passes reclustering criteria. More... | |
pandora::StatusCode | ReadSettings (const pandora::TiXmlHandle xmlHandle) |
Private Attributes | |
ClusteringToolVector | m_algorithmToolVector |
The reclustering algorithm tool vector. More... | |
std::string | m_pfoListName |
Name of the list of pfos to consider for reclustering. More... | |
std::string | m_clusterListName |
Name of the list of clusters to consider for reclustering. More... | |
pandora::StringVector | m_figureOfMeritNames |
The names of the figures of merit to use. More... | |
std::string | m_PfosForReclusteringListName |
Name of the internal list to contain new Pfos before/after reclustering. More... | |
std::string | m_mcParticleListName |
The mc particle list name. More... | |
float | m_fomThresholdForReclustering |
A threshold on the minimum figure of merit for reclustering. More... | |
long unsigned int | m_minNumCaloHitsForReclustering |
std::string | m_uClustersListName |
std::string | m_vClustersListName |
std::string | m_wClustersListName |
std::map< int, const pandora::Cluster * > | m_newClustersUMap |
std::map< int, const pandora::Cluster * > | m_newClustersVMap |
std::map< int, const pandora::Cluster * > | m_newClustersWMap |
Per-view maps associating new 3D clusters with new 2D clusters. More... | |
Static Private Attributes | |
static const std::unordered_map< std::string, ThreeDReclusteringAlgorithm::FigureOfMeritType > | m_stringToEnumMap |
RecursivePfoMopUpAlgorithm class.
Definition at line 27 of file ThreeDReclusteringAlgorithm.h.
|
private |
Definition at line 49 of file ThreeDReclusteringAlgorithm.h.
FigureOfMerit type enumeration.
Enumerator | |
---|---|
CHEATED |
Definition at line 33 of file ThreeDReclusteringAlgorithm.h.
lar_content::ThreeDReclusteringAlgorithm::ThreeDReclusteringAlgorithm | ( | ) |
Default constructor.
Definition at line 28 of file ThreeDReclusteringAlgorithm.cc.
lar_content::ThreeDReclusteringAlgorithm::~ThreeDReclusteringAlgorithm | ( | ) |
|
private |
Create new Pfos for each new ThreeD cluster in newClustersList.
pPfoToRebuild | the address of the original pfo to rebuild |
newClustersList | a reference to the new list of clusters obtained via the reclustering process |
Definition at line 279 of file ThreeDReclusteringAlgorithm.cc.
References f, m_newClustersUMap, m_newClustersVMap, m_newClustersWMap, and m_PfosForReclusteringListName.
Referenced by RebuildPfo().
|
private |
Create new TwoD clusters for each new ThreeD cluster in newClustersList.
pPfoToRebuild | the address of the original pfo to rebuild |
newClustersList | a reference to the new list of clusters obtained via the reclustering process |
Definition at line 169 of file ThreeDReclusteringAlgorithm.cc.
References larg4::dist(), lar_content::LArClusterHelper::GetClosestDistance(), lar_content::LArClusterHelper::GetClusterHitType(), lar_content::LArPfoHelper::GetTwoDClusterList(), m_newClustersUMap, m_newClustersVMap, m_newClustersWMap, m_uClustersListName, m_vClustersListName, and m_wClustersListName.
Referenced by RebuildPfo().
|
private |
Get cheated FOM as an impurity: the fraction of hits that are NOT contributed by the main MC particle. If clustering was perfect, cheated FOM would always be 0.
List | of calo hits for the pfo to recluster |
Definition at line 374 of file ThreeDReclusteringAlgorithm.cc.
References f, GetFigureOfMerit(), m_figureOfMeritNames, m_stringToEnumMap, x, and y.
|
private |
Loop over all specified figure of merit names, calculate figures of merit for the CaloHitList under consideration, and return the smallest FOM.
mergedClusterCaloHitList3D | the CaloHitList under consideration |
Referenced by GetCheatedFigureOfMerit(), PassesCutsForReclustering(), and Run().
|
private |
Calculate the specified figure of merit for the CaloHitList under consideration, and return the smallest FOM.
figureOfMeritName | the name of the figure of merit |
mergedClusterCaloHitList3D | the CaloHitList under consideration |
|
private |
Loop over all specified figure of merit names, calculate figures of merit for each CaloHitList in the provided vector, and return the smallest FOM.
newClustersCaloHitLists3D | the vector of CaloHitLists under consideration |
|
private |
Calculate the specified figure of merit for each CaloHitList in the provided vector, and return the smallest FOM.
figureOfMeritName | the name of the figure of merit |
newClustersCaloHitLists3D | the vector of CaloHitLists under consideration |
|
private |
Select pfos to be reclustered if it passes reclustering criteria.
pPfo | the address of the pfo |
Definition at line 345 of file ThreeDReclusteringAlgorithm.cc.
References GetFigureOfMerit(), lar_content::LArPfoHelper::GetThreeDClusterList(), lar_content::LArPfoHelper::IsShower(), m_clusterListName, m_fomThresholdForReclustering, and m_minNumCaloHitsForReclustering.
Referenced by Run().
|
private |
Definition at line 459 of file ThreeDReclusteringAlgorithm.cc.
References m_algorithmToolVector, m_clusterListName, m_figureOfMeritNames, m_fomThresholdForReclustering, m_mcParticleListName, m_minNumCaloHitsForReclustering, m_pfoListName, m_uClustersListName, m_vClustersListName, and m_wClustersListName.
|
private |
Create new TwoD clusters and Pfos for each new ThreeD cluster in newClustersList.
pPfoToRebuild | the address of the original pfo to rebuild |
newClustersList | a reference to the new list of clusters obtained via the reclustering process |
Definition at line 330 of file ThreeDReclusteringAlgorithm.cc.
References BuildNewPfos(), BuildNewTwoDClusters(), m_newClustersUMap, m_newClustersVMap, and m_newClustersWMap.
Referenced by Run().
|
private |
Definition at line 47 of file ThreeDReclusteringAlgorithm.cc.
References GetFigureOfMerit(), lar_content::LArPfoHelper::GetThreeDClusterList(), m_algorithmToolVector, m_clusterListName, m_pfoListName, m_PfosForReclusteringListName, PassesCutsForReclustering(), and RebuildPfo().
|
private |
The reclustering algorithm tool vector.
Definition at line 135 of file ThreeDReclusteringAlgorithm.h.
Referenced by ReadSettings(), and Run().
|
private |
Name of the list of clusters to consider for reclustering.
Definition at line 137 of file ThreeDReclusteringAlgorithm.h.
Referenced by PassesCutsForReclustering(), ReadSettings(), and Run().
|
private |
The names of the figures of merit to use.
Definition at line 138 of file ThreeDReclusteringAlgorithm.h.
Referenced by GetCheatedFigureOfMerit(), and ReadSettings().
|
private |
A threshold on the minimum figure of merit for reclustering.
Definition at line 141 of file ThreeDReclusteringAlgorithm.h.
Referenced by PassesCutsForReclustering(), and ReadSettings().
|
private |
The mc particle list name.
Definition at line 140 of file ThreeDReclusteringAlgorithm.h.
Referenced by ReadSettings().
|
private |
Definition at line 142 of file ThreeDReclusteringAlgorithm.h.
Referenced by PassesCutsForReclustering(), and ReadSettings().
|
private |
Definition at line 146 of file ThreeDReclusteringAlgorithm.h.
Referenced by BuildNewPfos(), BuildNewTwoDClusters(), and RebuildPfo().
|
private |
Definition at line 146 of file ThreeDReclusteringAlgorithm.h.
Referenced by BuildNewPfos(), BuildNewTwoDClusters(), and RebuildPfo().
|
private |
Per-view maps associating new 3D clusters with new 2D clusters.
Definition at line 146 of file ThreeDReclusteringAlgorithm.h.
Referenced by BuildNewPfos(), BuildNewTwoDClusters(), and RebuildPfo().
|
private |
Name of the list of pfos to consider for reclustering.
Definition at line 136 of file ThreeDReclusteringAlgorithm.h.
Referenced by ReadSettings(), and Run().
|
private |
Name of the internal list to contain new Pfos before/after reclustering.
Definition at line 139 of file ThreeDReclusteringAlgorithm.h.
Referenced by BuildNewPfos(), and Run().
|
staticprivate |
Definition at line 148 of file ThreeDReclusteringAlgorithm.h.
Referenced by GetCheatedFigureOfMerit().
|
private |
Definition at line 143 of file ThreeDReclusteringAlgorithm.h.
Referenced by BuildNewTwoDClusters(), and ReadSettings().
|
private |
Definition at line 144 of file ThreeDReclusteringAlgorithm.h.
Referenced by BuildNewTwoDClusters(), and ReadSettings().
|
private |
Definition at line 145 of file ThreeDReclusteringAlgorithm.h.
Referenced by BuildNewTwoDClusters(), and ReadSettings().