24typedef NeutrinoHierarchyAlgorithm::PfoInfo
PfoInfo;
28 m_minVertexLongitudinalDistance(-2.5f),
29 m_maxVertexLongitudinalDistance(20.f),
30 m_maxVertexTransverseDistance(3.5f),
31 m_vertexAngularAllowance(3.f)
40 std::cout <<
"----> Running Algorithm Tool: " << this->
GetInstanceName() <<
", " << this->
GetType() << std::endl;
45 for (
const auto &mapEntry : pfoInfoMap)
46 sortedPfos.push_back(mapEntry.first);
49 for (
const Pfo *
const pPfo : sortedPfos)
51 PfoInfo *
const pPfoInfo(pfoInfoMap.at(pPfo));
88 return STATUS_CODE_SUCCESS;
Header file for the pfo helper class.
Header file for the lar pointing cluster class.
Header file for the lar three dimensional sliding fit result class.
#define PANDORA_RETURN_RESULT_IF_AND_IF(StatusCode1, StatusCode2, Operator, Command)
static const pandora::PandoraSettings * GetSettings(const pandora::Algorithm &algorithm)
Get the pandora settings instance.
static bool SortByNHits(const pandora::ParticleFlowObject *const pLhs, const pandora::ParticleFlowObject *const pRhs)
Sort pfos by number of constituent hits.
const pandora::CartesianVector & GetPosition() const
Get the vertex position.
static bool IsNode(const pandora::CartesianVector &parentVertex, const LArPointingCluster::Vertex &daughterVertex, const float minLongitudinalDistance, const float maxTransverseDistance)
Whether pointing vertex is adjacent to a given position.
static bool IsEmission(const pandora::CartesianVector &parentVertex, const LArPointingCluster::Vertex &daughterVertex, const float minLongitudinalDistance, const float maxLongitudinalDistance, const float maxTransverseDistance, const float angularAllowance)
Whether pointing vertex is emitted from a given position.
LArPointingCluster class.
const Vertex & GetInnerVertex() const
Get the inner vertex.
const Vertex & GetOuterVertex() const
Get the outer vertex.
bool IsNeutrinoVertexAssociated() const
Whether the pfo is associated with the neutrino vertex.
void SetNeutrinoVertexAssociation(const bool isNeutrinoVertexAssociated)
Set the neutrino vertex association flag.
const pandora::ParticleFlowObject * GetParentPfo() const
Get the address of the parent pfo.
void SetInnerLayerAssociation(const bool isInnerLayerAssociated)
Set the inner layer association flag.
const ThreeDSlidingFitResult * GetSlidingFitResult3D() const
Get the address of the three dimensional sliding fit result.
NeutrinoHierarchyAlgorithm class.
std::unordered_map< const pandora::ParticleFlowObject *, PfoInfo * > PfoInfoMap
float m_maxVertexTransverseDistance
Vertex association check: max transverse distance cut.
float m_maxVertexLongitudinalDistance
Vertex association check: max longitudinal distance cut.
float m_vertexAngularAllowance
Vertex association check: pointing angular allowance in degrees.
void Run(const NeutrinoHierarchyAlgorithm *const pAlgorithm, const pandora::Vertex *const pNeutrinoVertex, NeutrinoHierarchyAlgorithm::PfoInfoMap &pfoInfoMap)
Run the algorithm tool.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
Read the algorithm settings.
float m_minVertexLongitudinalDistance
Vertex association check: min longitudinal distance cut.
VertexAssociatedPfosTool()
Default constructor.
bool ShouldDisplayAlgorithmInfo() const
Whether to display algorithm information during processing.
ParticleFlowObject class.
const std::string & GetType() const
Get the type.
const std::string & GetInstanceName() const
Get the instance name.
const CartesianVector & GetPosition() const
Get the vertex position.
static StatusCode ReadValue(const TiXmlHandle &xmlHandle, const std::string &xmlElementName, T &t)
Read a value from an xml element.
NeutrinoHierarchyAlgorithm::PfoInfo PfoInfo
NeutrinoHierarchyAlgorithm::PfoInfoMap PfoInfoMap
std::vector< const ParticleFlowObject * > PfoVector
StatusCode
The StatusCode enum.