APRILContent
Algorithm of Particle Reconstruction for ILC - implementation with PandoraSDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations
PerfectParticleFlowAlgorithm.h
Go to the documentation of this file.
1 
10 #ifndef APRILPERFECTPARTICLEFLOWALGORITHM_H
11 #define APRILPERFECTPARTICLEFLOWALGORITHM_H 1
12 
13 #include "Api/PandoraContentApi.h"
14 
15 #include "Pandora/Algorithm.h"
16 
17 namespace april_content // changed namespace
18 {
19 
23 class PerfectParticleFlowAlgorithm : public pandora::Algorithm
24 {
25 public:
29  class Factory : public pandora::AlgorithmFactory
30  {
31  public:
32  pandora::Algorithm *CreateAlgorithm() const;
33  };
34 
39 
40 private:
41  pandora::StatusCode Run();
42  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
43 
44  typedef PandoraContentApi::ParticleFlowObject::Parameters PfoParameters;
45 
52  void CaloHitCollection(const pandora::MCParticle *const pPfoTarget, PfoParameters &pfoParameters) const;
53 
61  void SimpleCaloHitCollection(const pandora::MCParticle *const pPfoTarget, const pandora::CaloHit *const pCaloHit, pandora::CaloHitList &caloHitList) const;
62 
70  void FullCaloHitCollection(const pandora::MCParticle *const pPfoTarget, const pandora::CaloHit *const pCaloHit, pandora::CaloHitList &caloHitList) const;
71 
78  void TrackCollection(const pandora::MCParticle *const pPfoTarget, PfoParameters &pfoParameters) const;
79 
87  void SetPfoParametersFromTracks(const pandora::MCParticle *const pPfoTarget, int &nTracksUsed, PfoParameters &pfoParameters) const;
88 
96  void SetPfoParametersFromClusters(const pandora::MCParticle *const pPfoTarget, const int nTracksUsed, PfoParameters &pfoParameters) const;
97 
107  const pandora::CartesianVector GetEnergyWeightedCentroid(const pandora::Cluster *const pCluster, const unsigned int innerPseudoLayer,
108  const unsigned int outerPseudoLayer) const;
109 
117  void PfoParameterDebugInformation(const pandora::MCParticle *const pPfoTarget, const int nTracksUsed, PfoParameters &pfoParameters) const;
118 
119  std::string m_outputPfoListName;
123 };
124 
125 //------------------------------------------------------------------------------------------------------------------------------------------
126 
127 inline pandora::Algorithm *PerfectParticleFlowAlgorithm::Factory::CreateAlgorithm() const
128 {
129  return new PerfectParticleFlowAlgorithm();
130 }
131 
132 } // namespace april_content
133 
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