10 #ifndef APRILPERFECTPARTICLEFLOWALGORITHM_H
11 #define APRILPERFECTPARTICLEFLOWALGORITHM_H 1
13 #include "Api/PandoraContentApi.h"
15 #include "Pandora/Algorithm.h"
17 namespace april_content
29 class Factory :
public pandora::AlgorithmFactory
32 pandora::Algorithm *CreateAlgorithm()
const;
41 pandora::StatusCode Run();
42 pandora::StatusCode ReadSettings(
const pandora::TiXmlHandle xmlHandle);
44 typedef PandoraContentApi::ParticleFlowObject::Parameters PfoParameters;
52 void CaloHitCollection(
const pandora::MCParticle *
const pPfoTarget, PfoParameters &pfoParameters)
const;
61 void SimpleCaloHitCollection(
const pandora::MCParticle *
const pPfoTarget,
const pandora::CaloHit *
const pCaloHit, pandora::CaloHitList &caloHitList)
const;
70 void FullCaloHitCollection(
const pandora::MCParticle *
const pPfoTarget,
const pandora::CaloHit *
const pCaloHit, pandora::CaloHitList &caloHitList)
const;
78 void TrackCollection(
const pandora::MCParticle *
const pPfoTarget, PfoParameters &pfoParameters)
const;
87 void SetPfoParametersFromTracks(
const pandora::MCParticle *
const pPfoTarget,
int &nTracksUsed, PfoParameters &pfoParameters)
const;
96 void SetPfoParametersFromClusters(
const pandora::MCParticle *
const pPfoTarget,
const int nTracksUsed, PfoParameters &pfoParameters)
const;
107 const pandora::CartesianVector
GetEnergyWeightedCentroid(
const pandora::Cluster *
const pCluster,
const unsigned int innerPseudoLayer,
108 const unsigned int outerPseudoLayer)
const;
117 void PfoParameterDebugInformation(
const pandora::MCParticle *
const pPfoTarget,
const int nTracksUsed, PfoParameters &pfoParameters)
const;
127 inline pandora::Algorithm *PerfectParticleFlowAlgorithm::Factory::CreateAlgorithm()
const
134 #endif // #ifndef APRILPERFECTPARTICLEFLOWALGORITHM_H
bool m_simpleCaloHitCollection
Whether to use simple calo hit collection mechanism, or full mechanism.
Definition: PerfectParticleFlowAlgorithm.h:121
void FullCaloHitCollection(const pandora::MCParticle *const pPfoTarget, const pandora::CaloHit *const pCaloHit, pandora::CaloHitList &caloHitList) const
Full collection of calo hits, using map of mc particles to hit weights; fragment calo hits where nece...
Definition: PerfectParticleFlowAlgorithm.cc:149
std::string m_outputClusterListName
The output cluster list name.
Definition: PerfectParticleFlowAlgorithm.h:120
void SimpleCaloHitCollection(const pandora::MCParticle *const pPfoTarget, const pandora::CaloHit *const pCaloHit, pandora::CaloHitList &caloHitList) const
Simple collection of calo hits, using only hits for which pfo target is the main mc particle...
Definition: PerfectParticleFlowAlgorithm.cc:136
void SetPfoParametersFromClusters(const pandora::MCParticle *const pPfoTarget, const int nTracksUsed, PfoParameters &pfoParameters) const
Set the pfo parameters using clusters that have been collected together.
Definition: PerfectParticleFlowAlgorithm.cc:276
void PfoParameterDebugInformation(const pandora::MCParticle *const pPfoTarget, const int nTracksUsed, PfoParameters &pfoParameters) const
Print relevant pfo parameter debug information, if required.
Definition: PerfectParticleFlowAlgorithm.cc:345
void CaloHitCollection(const pandora::MCParticle *const pPfoTarget, PfoParameters &pfoParameters) const
Collection of calo hits.
Definition: PerfectParticleFlowAlgorithm.cc:84
std::string m_outputPfoListName
The output pfo list name.
Definition: PerfectParticleFlowAlgorithm.h:119
PerfectParticleFlowAlgorithm class.
Definition: PerfectParticleFlowAlgorithm.h:23
const pandora::CartesianVector GetEnergyWeightedCentroid(const pandora::Cluster *const pCluster, const unsigned int innerPseudoLayer, const unsigned int outerPseudoLayer) const
Get the energy-weighted centroid for a specified cluster, calculated over a particular pseudo layer r...
Definition: PerfectParticleFlowAlgorithm.cc:314
PerfectParticleFlowAlgorithm()
Default constructor.
Definition: PerfectParticleFlowAlgorithm.cc:22
void TrackCollection(const pandora::MCParticle *const pPfoTarget, PfoParameters &pfoParameters) const
Collection of tracks, using only tracks for which pfo target is the main mc particle.
Definition: PerfectParticleFlowAlgorithm.cc:200
float m_minWeightFraction
The minimum mc particle calo hit weight for hit fragmentation.
Definition: PerfectParticleFlowAlgorithm.h:122
void SetPfoParametersFromTracks(const pandora::MCParticle *const pPfoTarget, int &nTracksUsed, PfoParameters &pfoParameters) const
Set the pfo parameters using tracks that have been collected together.
Definition: PerfectParticleFlowAlgorithm.cc:228
Factory class for instantiating algorithm.
Definition: PerfectParticleFlowAlgorithm.h:29