LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
NeutrinoHierarchyAlgorithm class. More...
#include "NeutrinoHierarchyAlgorithm.h"
Classes | |
class | PfoInfo |
PfoInfo class. More... | |
Public Types | |
typedef std::unordered_map< const pandora::ParticleFlowObject *, PfoInfo * > | PfoInfoMap |
Public Member Functions | |
NeutrinoHierarchyAlgorithm () | |
Default constructor. More... | |
void | SeparatePfos (const NeutrinoHierarchyAlgorithm::PfoInfoMap &pfoInfoMap, pandora::PfoVector &assignedPfos, pandora::PfoVector &unassignedPfos) const |
Query the pfo info map and separate/extract pfos currently either acting as parents or associated with the neutrino vertex. More... | |
Private Types | |
typedef std::vector< PfoRelationTool * > | PfoRelationToolVector |
Private Member Functions | |
pandora::StatusCode | Run () |
void | GetNeutrinoPfo (const pandora::ParticleFlowObject *&pNeutrinoPfo) const |
Get the address of the input neutrino pfo - enforces only one pfo present in input list; can return NULL if no neutrino exists. More... | |
void | GetCandidateDaughterPfoList (pandora::PfoList &candidateDaughterPfoList) const |
Get the list of candidate daughter pfos. More... | |
void | GetInitialPfoInfoMap (const pandora::PfoList &pfoList, PfoInfoMap &pfoInfoMap) const |
Process a provided pfo list and populate an initial pfo info map. More... | |
void | ProcessPfoInfoMap (const pandora::ParticleFlowObject *const pNeutrinoPfo, const pandora::PfoList &candidateDaughterPfoList, PfoInfoMap &pfoInfoMap, const unsigned int callDepth=0) const |
Process the information in a pfo info map, creating pfo parent/daughter links. More... | |
void | AdjustVertexAndPfoInfo (const pandora::ParticleFlowObject *const pNeutrinoPfo, const pandora::PfoList &candidateDaughterPfoList, PfoInfoMap &pfoInfoMap) const |
Adjust neutrino vertex to ensure agreement with at least one pfo (first in sorted input list) More... | |
void | DisplayPfoInfoMap (const pandora::ParticleFlowObject *const pNeutrinoPfo, const PfoInfoMap &pfoInfoMap) const |
Display the information in a pfo info map, visualising pfo parent/daughter links. More... | |
pandora::StatusCode | ReadSettings (const pandora::TiXmlHandle xmlHandle) |
Private Attributes | |
PfoRelationToolVector | m_algorithmToolVector |
The algorithm tool vector. More... | |
std::string | m_neutrinoPfoListName |
The neutrino pfo list name. More... | |
pandora::StringVector | m_daughterPfoListNames |
The list of daughter pfo list names. More... | |
std::string | m_neutrinoVertexListName |
The neutrino vertex list name - if not specified will assume current list. More... | |
unsigned int | m_halfWindowLayers |
The number of layers to use for half-window of sliding fit. More... | |
bool | m_displayPfoInfoMap |
Whether to display the pfo info map (if monitoring is enabled) More... | |
NeutrinoHierarchyAlgorithm class.
Definition at line 27 of file NeutrinoHierarchyAlgorithm.h.
typedef std::unordered_map<const pandora::ParticleFlowObject *, PfoInfo *> lar_content::NeutrinoHierarchyAlgorithm::PfoInfoMap |
Definition at line 170 of file NeutrinoHierarchyAlgorithm.h.
|
private |
Definition at line 237 of file NeutrinoHierarchyAlgorithm.h.
lar_content::NeutrinoHierarchyAlgorithm::NeutrinoHierarchyAlgorithm | ( | ) |
Default constructor.
Definition at line 22 of file NeutrinoHierarchyAlgorithm.cc.
|
private |
Adjust neutrino vertex to ensure agreement with at least one pfo (first in sorted input list)
pNeutrinoPfo | the address of the (original) parent neutrino pfo |
candidateDaughterPfoList | the list of candidate daughter pfos |
pfoInfoMap | the pfo info map |
Definition at line 233 of file NeutrinoHierarchyAlgorithm.cc.
References lar_content::LArClusterHelper::GetClosestPosition(), lar_content::LArPfoHelper::GetThreeDClusterList(), lar_content::LArPfoHelper::GetVertex(), m_algorithmToolVector, m_neutrinoVertexListName, lar_content::LArClusterHelper::SortByNHits(), and lar_content::LArPfoHelper::SortByNHits().
Referenced by ProcessPfoInfoMap().
|
private |
Display the information in a pfo info map, visualising pfo parent/daughter links.
pNeutrinoPfo | the address of the (original) parent neutrino pfo |
pfoInfoMap | the pfo info map |
Definition at line 287 of file NeutrinoHierarchyAlgorithm.cc.
References f, lar_content::NeutrinoHierarchyAlgorithm::PfoInfo::GetThisPfo(), and lar_content::LArPfoHelper::SortByNHits().
Referenced by Run().
|
private |
Get the list of candidate daughter pfos.
candidateDaughterPfoList | to receive the candidate daughter pfo list |
Definition at line 129 of file NeutrinoHierarchyAlgorithm.cc.
References m_daughterPfoListNames.
Referenced by Run().
|
private |
Process a provided pfo list and populate an initial pfo info map.
pfoList | the provided pfo list |
pfoInfoMap | to receive the initial pfo info map |
Definition at line 151 of file NeutrinoHierarchyAlgorithm.cc.
References lar_content::LArGeometryHelper::GetWirePitch(), and m_halfWindowLayers.
Referenced by Run().
|
private |
Get the address of the input neutrino pfo - enforces only one pfo present in input list; can return NULL if no neutrino exists.
to | receive the address of the input neutrino pfo |
Definition at line 106 of file NeutrinoHierarchyAlgorithm.cc.
References lar_content::LArPfoHelper::IsNeutrino(), and m_neutrinoPfoListName.
Referenced by Run().
|
private |
Process the information in a pfo info map, creating pfo parent/daughter links.
pNeutrinoPfo | the address of the (original) parent neutrino pfo |
candidateDaughterPfoList | the list of candidate daughter pfos |
pfoInfoMap | the pfo info map |
callDepth | depth of callstack for this function, tracking recursive use |
Definition at line 180 of file NeutrinoHierarchyAlgorithm.cc.
References AdjustVertexAndPfoInfo(), and lar_content::LArPfoHelper::SortByNHits().
Referenced by Run().
|
private |
Definition at line 473 of file NeutrinoHierarchyAlgorithm.cc.
References m_algorithmToolVector, m_daughterPfoListNames, m_displayPfoInfoMap, m_halfWindowLayers, m_neutrinoPfoListName, and m_neutrinoVertexListName.
|
private |
Definition at line 54 of file NeutrinoHierarchyAlgorithm.cc.
References DisplayPfoInfoMap(), GetCandidateDaughterPfoList(), GetInitialPfoInfoMap(), GetNeutrinoPfo(), lar_content::LArPfoHelper::GetVertex(), m_algorithmToolVector, m_displayPfoInfoMap, and ProcessPfoInfoMap().
void lar_content::NeutrinoHierarchyAlgorithm::SeparatePfos | ( | const NeutrinoHierarchyAlgorithm::PfoInfoMap & | pfoInfoMap, |
pandora::PfoVector & | assignedPfos, | ||
pandora::PfoVector & | unassignedPfos | ||
) | const |
Query the pfo info map and separate/extract pfos currently either acting as parents or associated with the neutrino vertex.
pfoInfoMap | the pfo info map |
assignedPfos | to receive the sorted vector of assigned pfos |
unassignedPfos | to receive the sorted vector of unassigned pfos |
Definition at line 30 of file NeutrinoHierarchyAlgorithm.cc.
References lar_content::LArPfoHelper::SortByNHits().
Referenced by lar_content::BranchAssociatedPfosTool::Run(), and lar_content::EndAssociatedPfosTool::Run().
|
private |
The algorithm tool vector.
Definition at line 238 of file NeutrinoHierarchyAlgorithm.h.
Referenced by AdjustVertexAndPfoInfo(), ReadSettings(), and Run().
|
private |
The list of daughter pfo list names.
Definition at line 241 of file NeutrinoHierarchyAlgorithm.h.
Referenced by GetCandidateDaughterPfoList(), and ReadSettings().
|
private |
Whether to display the pfo info map (if monitoring is enabled)
Definition at line 246 of file NeutrinoHierarchyAlgorithm.h.
Referenced by ReadSettings(), and Run().
|
private |
The number of layers to use for half-window of sliding fit.
Definition at line 245 of file NeutrinoHierarchyAlgorithm.h.
Referenced by GetInitialPfoInfoMap(), and ReadSettings().
|
private |
The neutrino pfo list name.
Definition at line 240 of file NeutrinoHierarchyAlgorithm.h.
Referenced by GetNeutrinoPfo(), and ReadSettings().
|
private |
The neutrino vertex list name - if not specified will assume current list.
Definition at line 243 of file NeutrinoHierarchyAlgorithm.h.
Referenced by AdjustVertexAndPfoInfo(), and ReadSettings().