APRILContent
Algorithm of Particle Reconstruction for ILC - implementation with PandoraSDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations
PerfectFragmentRemovalAlgorithm.h
Go to the documentation of this file.
1 
10 #ifndef PERFECTFRAGMENTREMOVALALGORITHM_H
11 #define PERFECTFRAGMENTREMOVALALGORITHM_H 1
12 
13 #include "Pandora/Algorithm.h"
14 
15 namespace april_content
16 {
17 
21 class PerfectFragmentRemovalAlgorithm : public pandora::Algorithm
22 {
23 public:
27  class Factory : public pandora::AlgorithmFactory
28  {
29  public:
30  pandora::Algorithm *CreateAlgorithm() const;
31  };
32 
37 
38 protected:
39  //virtual bool SelectMCParticlesForClustering(const pandora::MCParticle *const pMCParticle) const;
40 
41 private:
42  pandora::StatusCode Run();
43  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
44 
45  typedef std::map<const pandora::MCParticle*, pandora::ClusterList*> MCParticleToClusterListMap;
46  typedef std::map<const pandora::MCParticle*, const pandora::Track*> MCParticleToTrackMap;
47 
48 
55  void SimpleMCParticleCollection(const pandora::Cluster* const pCaloHit, MCParticleToClusterListMap &mcParticleToClusterListMap) const;
56 
63  //void FullMCParticleCollection(const pandora::CaloHit *const pCaloHit, MCParticleToHitListMap &mcParticleToHitListMap) const;
64 
72  void AddToClusterListMap(const pandora::Cluster *const pClusterToAdd, const pandora::MCParticle *const pMCParticle, MCParticleToClusterListMap &mcParticleToClusterListMap) const;
73 
79  pandora::StatusCode MergeClusters(const MCParticleToClusterListMap &mcParticleToClusterListMap) const;
80 
81  //pandora::IntVector m_particleIdList; ///< list of particle ids of MCPFOs to be selected
82  //bool m_shouldUseOnlyECalHits; ///< Whether to only use ecal hits in the clustering algorithm
83  //bool m_shouldUseIsolatedHits; ///< Whether to use isolated hits in the clustering algorithm
84  //bool m_simpleMCParticleCollection; ///< Whether to use simple mc particle collection mechanism, or full mechanism
85  //float m_minWeightFraction; ///< The minimum mc particle calo hit weight for clustering consideration
86 };
87 
88 //------------------------------------------------------------------------------------------------------------------------------------------
89 
90 inline pandora::Algorithm *PerfectFragmentRemovalAlgorithm::Factory::CreateAlgorithm() const
91 {
93 }
94 
95 }
96 
97 #endif // PERFECTFRAGMENTREMOVALALGORITHM_H
PerfectFragmentRemovalAlgorithm()
Default constructor.
Definition: PerfectFragmentRemovalAlgorithm.cc:20
void SimpleMCParticleCollection(const pandora::Cluster *const pCaloHit, MCParticleToClusterListMap &mcParticleToClusterListMap) const
Simple mc particle collection, using main mc particle associated with each calo hit.
Definition: PerfectFragmentRemovalAlgorithm.cc:60
PerfectFragmentRemovalAlgorithm class.
Definition: PerfectFragmentRemovalAlgorithm.h:21
void AddToClusterListMap(const pandora::Cluster *const pClusterToAdd, const pandora::MCParticle *const pMCParticle, MCParticleToClusterListMap &mcParticleToClusterListMap) const
Full mc particle collection, using map of mc particles to hit weights; fragment calo hits where neces...
Definition: PerfectFragmentRemovalAlgorithm.cc:69
pandora::StatusCode MergeClusters(const MCParticleToClusterListMap &mcParticleToClusterListMap) const
Create clusters based on information in the mc particle to hit list map.
Definition: PerfectFragmentRemovalAlgorithm.cc:88
Factory class for instantiating algorithm.
Definition: PerfectFragmentRemovalAlgorithm.h:27