APRILContent
Algorithm of Particle Reconstruction for ILC - implementation with PandoraSDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations
PerfectHitCorrectionAlgorithm.h
Go to the documentation of this file.
1 
10 #ifndef APRILPERFECTHITCORRECTION_H
11 #define APRILPERFECTHITCORRECTION_H 1
12 
13 #include "Api/PandoraContentApi.h"
14 
15 #include "Pandora/Algorithm.h"
16 
18 
19 namespace april_content // changed namespace
20 {
21 
25 class PerfectHitCorrectionAlgorithm : public pandora::Algorithm
26 {
27 public:
31  class Factory : public pandora::AlgorithmFactory
32  {
33  public:
34  pandora::Algorithm *CreateAlgorithm() const;
35  };
36 
41 
42 private:
43  pandora::StatusCode Run();
44  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
45 
46  typedef PandoraContentApi::ParticleFlowObject::Parameters PfoParameters;
47 
54  void CaloHitCollection(const pandora::MCParticle *const pPfoTarget, PfoParameters &pfoParameters) const;
55 
63  void SimpleCaloHitCollection(const pandora::MCParticle *const pPfoTarget, const pandora::CaloHit *const pCaloHit, pandora::CaloHitList &caloHitList) const;
64 
72  void FullCaloHitCollection(const pandora::MCParticle *const pPfoTarget, const pandora::CaloHit *const pCaloHit, pandora::CaloHitList &caloHitList) const;
73 
80  void TrackCollection(const pandora::MCParticle *const pPfoTarget, PfoParameters &pfoParameters) const;
81 
89  void SetPfoParametersFromTracks(const pandora::MCParticle *const pPfoTarget, int &nTracksUsed, PfoParameters &pfoParameters) const;
90 
98  void SetPfoParametersFromClusters(const pandora::MCParticle *const pPfoTarget, const int nTracksUsed, PfoParameters &pfoParameters) const;
99 
109  const pandora::CartesianVector GetEnergyWeightedCentroid(const pandora::Cluster *const pCluster, const unsigned int innerPseudoLayer,
110  const unsigned int outerPseudoLayer) const;
111 
119  void PfoParameterDebugInformation(const pandora::MCParticle *const pPfoTarget, const int nTracksUsed, PfoParameters &pfoParameters) const;
120 
121  std::string m_outputPfoListName;
125 };
126 
127 //------------------------------------------------------------------------------------------------------------------------------------------
128 
129 inline pandora::Algorithm *PerfectHitCorrectionAlgorithm::Factory::CreateAlgorithm() const
130 {
131  return new PerfectHitCorrectionAlgorithm();
132 }
133 
134 } // namespace april_content
135 
136 #endif
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: PerfectHitCorrectionAlgorithm.cc:281
void SetPfoParametersFromClusters(const pandora::MCParticle *const pPfoTarget, const int nTracksUsed, PfoParameters &pfoParameters) const
Set the pfo parameters using clusters that have been collected together.
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.
void PfoParameterDebugInformation(const pandora::MCParticle *const pPfoTarget, const int nTracksUsed, PfoParameters &pfoParameters) const
Print relevant pfo parameter debug information, if required.
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...
PerfectHitCorrectionAlgorithm()
Default constructor.
Definition: PerfectHitCorrectionAlgorithm.cc:21
bool m_simpleCaloHitCollection
Whether to use simple calo hit collection mechanism, or full mechanism.
Definition: PerfectHitCorrectionAlgorithm.h:123
void CaloHitCollection(const pandora::MCParticle *const pPfoTarget, PfoParameters &pfoParameters) const
Collection of calo hits.
Definition: PerfectHitCorrectionAlgorithm.cc:190
PerfectHitCorrectionAlgorithm class.
Definition: PerfectHitCorrectionAlgorithm.h:25
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: PerfectHitCorrectionAlgorithm.cc:242
std::string m_outputClusterListName
The output cluster list name.
Definition: PerfectHitCorrectionAlgorithm.h:122
float m_minWeightFraction
The minimum mc particle calo hit weight for hit fragmentation.
Definition: PerfectHitCorrectionAlgorithm.h:124
std::string m_outputPfoListName
The output pfo list name.
Definition: PerfectHitCorrectionAlgorithm.h:121
void SetPfoParametersFromTracks(const pandora::MCParticle *const pPfoTarget, int &nTracksUsed, PfoParameters &pfoParameters) const
Set the pfo parameters using tracks that have been collected together.
Factory class for instantiating algorithm.
Definition: PerfectHitCorrectionAlgorithm.h:31