8 #ifndef LAR_DELTA_RAY_PARENT_ALGORITHM_H 9 #define LAR_DELTA_RAY_PARENT_ALGORITHM_H 1 11 #include "Pandora/Algorithm.h" 22 typedef std::map<const pandora::ParticleFlowObject *, float>
PfoLengthMap;
29 pandora::StatusCode
Run();
39 void InitialisePfoLengthMap(
const pandora::PfoList *
const muonPfoList,
const pandora::PfoList *
const deltaRayPfoList, PfoLengthMap &pfoLengthMap)
const;
48 void FindParentPfo(
const PfoLengthMap &pfoLengthMap,
const pandora::ParticleFlowObject *
const pPfo,
const pandora::ParticleFlowObject *&pParentPfo)
const;
60 const pandora::ParticleFlowObject *
const pPfo1,
const pandora::ParticleFlowObject *
const pPfo2,
float &separation)
const;
71 void AssignToParentPfo(
const pandora::PfoList *
const muonPfoList,
const pandora::PfoList *
const deltaRayPfoList,
72 const pandora::ParticleFlowObject *
const pPfo,
const pandora::ParticleFlowObject *
const pParentPfo, PfoLengthMap &pfoLengthMap)
const;
81 void UpdatePfoLengthMap(
const pandora::PfoList &pfosToRemove,
const pandora::ParticleFlowObject *
const pPfoToAdd, PfoLengthMap &pfoLengthMap)
const;
83 pandora::StatusCode
ReadSettings(
const pandora::TiXmlHandle xmlHandle);
92 #endif // #ifndef LAR_DELTA_RAY_PARENT_ALGORITHM_H
pandora::StatusCode GetTwoDSeparation(const pandora::ParticleFlowObject *const pPfo1, const pandora::ParticleFlowObject *const pPfo2, float &separation) const
Get distance between two Pfos using 2D clusters.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
pandora::StatusCode Run()
DeltaRayParentAlgorithm()
Default constructor.
std::string m_muonPfoListName
The list of reconstructed muon pfos.
float m_distanceForMatching
The maximum separation of a delta ray pfo from its parent.
void AssignToParentPfo(const pandora::PfoList *const muonPfoList, const pandora::PfoList *const deltaRayPfoList, const pandora::ParticleFlowObject *const pPfo, const pandora::ParticleFlowObject *const pParentPfo, PfoLengthMap &pfoLengthMap) const
Apply parent-child link (if parent is a cosmic ray create parent-child link else merge the delta ray ...
void UpdatePfoLengthMap(const pandora::PfoList &pfosToRemove, const pandora::ParticleFlowObject *const pPfoToAdd, PfoLengthMap &pfoLengthMap) const
Update the pfo length map after a parent-child delta ray merge.
void FindParentPfo(const PfoLengthMap &pfoLengthMap, const pandora::ParticleFlowObject *const pPfo, const pandora::ParticleFlowObject *&pParentPfo) const
Identify the parent pfo of a given delta ray pfo (can be either a cosmic ray or delta ray pfo) ...
std::map< const pandora::ParticleFlowObject *, float > PfoLengthMap
void InitialisePfoLengthMap(const pandora::PfoList *const muonPfoList, const pandora::PfoList *const deltaRayPfoList, PfoLengthMap &pfoLengthMap) const
Initialise the delta ray pfo length map.
std::string m_deltaRayPfoListName
The list of reconstructed delta ray pfos.
DeltaRayParentAlgorithm class.