8 #ifndef LAR_HIERARCHY_PFO_H 9 #define LAR_HIERARCHY_PFO_H 1 11 #include "Pandora/PandoraInternal.h" 42 const pandora::CartesianVector &GetPosition()
const;
49 const pandora::CartesianVector &GetDirection()
const;
57 void Set(
const pandora::CartesianVector &position,
const pandora::CartesianVector &direction);
106 const pandora::ParticleFlowObject *GetPfo()
const;
113 void SetPfo(
const pandora::ParticleFlowObject *pPfo);
127 const pandora::ParticleFlowObject *GetPredictedParentPfo()
const;
134 void SetPredictedParentPfo(
const pandora::ParticleFlowObject *pPredictedParentPfo);
141 const pandora::ParticleFlowObject *GetParentPfo()
const;
148 void SetParentPfo(
const pandora::ParticleFlowObject *pParentPfo);
155 const pandora::PfoVector &GetChildPfoVector()
const;
162 void AddChildPfo(
const pandora::ParticleFlowObject *
const pChildPfo);
190 void SetDownstreamPoint(
const ExtremalPoint &downstreamPoint);
197 float GetPrimaryScore()
const;
204 void SetPrimaryScore(
const float primaryScore);
211 float GetLaterTierScore()
const;
218 void SetLaterTierScore(
const float laterTierScore);
225 bool GetIsInHierarchy()
const;
232 void SetIsInHierarchy(
const bool isInHierarchy);
246 bool operator==(
const pandora::ParticleFlowObject *
const rhs)
const;
249 const pandora::ParticleFlowObject *
m_pPfo;
265 inline ExtremalPoint::ExtremalPoint() :
267 m_position(-999.
f, -999.
f, -999.
f),
268 m_direction(-999.
f, -999.
f, -999.
f)
297 inline void ExtremalPoint::Set(
const pandora::CartesianVector &position,
const pandora::CartesianVector &direction)
327 m_slidingFitResult(slidingFitResult),
328 m_pPredictedParentPfo(nullptr),
329 m_pParentPfo(nullptr),
330 m_childPfoVector(
pandora::PfoVector()),
331 m_upstreamPoint(upstreamPoint),
332 m_downstreamPoint(downstreamPoint),
333 m_primaryScore(-
std::numeric_limits<float>::max()),
334 m_laterTierScore(-
std::numeric_limits<float>::max()),
335 m_isInHierarchy(false)
483 return this->
GetPfo() == rhs;
490 #endif // #ifndef LAR_HIERARCHY_PFO_H HierarchyPfo()
Default constructor.
void Set(const pandora::CartesianVector &position, const pandora::CartesianVector &direction)
Set the the extremal point's position and direction.
void SetIsInHierarchy(const bool isInHierarchy)
Set whether the pfo has been assigned to a particle hierarchy.
pandora::PfoVector m_childPfoVector
the vector of pointers to the assigned child pfos
Header file for the pfo helper class.
ExtremalPoint m_downstreamPoint
The extremal point that lies furthest from the neutrino vertex.
void AddChildPfo(const pandora::ParticleFlowObject *const pChildPfo)
Add a child pfo to the child pfo vector.
const pandora::ParticleFlowObject * GetPfo() const
Get the pfo.
void SetDownstreamPoint(const ExtremalPoint &downstreamPoint)
Set the downstream extremal point.
pandora::CartesianVector m_position
the extremal point position
ThreeDSlidingFitResult m_slidingFitResult
the 3D sliding fit result of the pfo
float m_laterTierScore
the later tier network score
void SetUpstreamPoint(const ExtremalPoint &upstreamPoint)
Set the upstream extremal point.
pandora::CartesianVector m_direction
the extremal point direction (pointing into the particle)
float m_primaryScore
the primary network score
std::vector< HierarchyPfo > HierarchyPfoVector
const pandora::ParticleFlowObject * m_pPredictedParentPfo
a pointer to the best matched parent pfo
bool IsSet() const
Whether extremal point object has been set.
ExtremalPoint m_upstreamPoint
The extremal point that lies closest to the neutrino vertex.
const pandora::ParticleFlowObject * GetParentPfo() const
Get the parent pfo.
const ExtremalPoint & GetUpstreamPoint() const
Get the upstream extremal point.
const ExtremalPoint & GetDownstreamPoint() const
Get the downstream extremal point.
constexpr BitMask< Storage > Set(Flag_t< Storage > flag)
Returns a bit mask which sets the specified flag.
const pandora::ParticleFlowObject * GetPredictedParentPfo() const
Get the best matched parent pfo.
ExtremalPoint()
Default constructor.
const pandora::CartesianVector & GetPosition() const
Get the position.
void SetPredictedParentPfo(const pandora::ParticleFlowObject *pPredictedParentPfo)
Set the best matched parent pfo.
bool m_isSet
whether the extremal point object has been set
Header file for the lar three dimensional sliding fit result class.
const ThreeDSlidingFitResult & GetSlidingFitResult() const
Get the pfo's 3D sliding fit result.
void SetPfo(const pandora::ParticleFlowObject *pPfo)
Set the pfo.
float GetLaterTierScore() const
Get the later tier network score.
float GetPrimaryScore() const
Get the primary network score.
ThreeDSlidingFitResult class.
void SetParentPfo(const pandora::ParticleFlowObject *pParentPfo)
Set the parent pfo.
const pandora::CartesianVector & GetDirection() const
Get the direction at the extremal point.
void SetLaterTierScore(const float laterTierScore)
Set the later tier network score.
bool operator==(const HierarchyPfo &rhs) const
HierarchyPfo == operator.
const pandora::ParticleFlowObject * m_pPfo
a pointer to the corresponding pfo
bool GetIsInHierarchy() const
Get whether the pfo has been assigned to a particle hierarchy.
ExtremalPoint & operator=(const ExtremalPoint &rhs)
Assignment operator.
void SetPrimaryScore(const float primaryScore)
Set the primary network score.
bool operator==(infinite_endcount_iterator< T > const &, count_iterator< T > const &)
bool m_isInHierarchy
whether the pfo has been assigned to a particle hierarchy
const pandora::ParticleFlowObject * m_pParentPfo
a pointer to the assigned parent pfo
const pandora::PfoVector & GetChildPfoVector() const
Get the vector of child pfos.