APRILContent
Algorithm of Particle Reconstruction for ILC - implementation with PandoraSDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations
PerfectIsoHitRemovalAlgorithm.h
Go to the documentation of this file.
1 
10 #ifndef PERFECTISOHITREMOVALALGORITHM_H
11 #define PERFECTISOHITREMOVALALGORITHM_H 1
12 
13 #include "Pandora/Algorithm.h"
14 
15 namespace april_content
16 {
17 
21 class PerfectIsoHitRemovalAlgorithm : public pandora::Algorithm
22 {
23 public:
27  class Factory : public pandora::AlgorithmFactory
28  {
29  public:
30  pandora::Algorithm *CreateAlgorithm() const;
31  };
32 
37 
38 
39 protected:
40 
41 private:
42  pandora::StatusCode Run();
43  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
44 
45  typedef std::map<const pandora::MCParticle*, pandora::CaloHitList*> MCParticleToCaloHitListMap;
46  typedef std::map<const pandora::MCParticle*, const pandora::Cluster*> MCParticleToClusterMap;
47 
54  void SimpleMCParticleCaloHitListCollection(const pandora::CaloHit* const pCaloHit,
55  MCParticleToCaloHitListMap &mcParticleToCaloHitListMap);
56 
57  void SimpleMCParticleClusterCollection(const pandora::Cluster* const pCluster, MCParticleToClusterMap &mcParticleToClusterMap);
58 
65  //void FullMCParticleCollection(const pandora::CaloHit *const pCaloHit, MCParticleToHitListMap &mcParticleToHitListMap) const;
66 
75  void AddToCaloHitListMap(const pandora::CaloHit* const pCaloHitToAdd,
76  const pandora::MCParticle *const pMCParticle, MCParticleToCaloHitListMap &mcParticleToCaloHitListMap) const;
77 
78  void AddToClusterMap(const pandora::Cluster* const pClusterToAdd,
79  const pandora::MCParticle *const pMCParticle, MCParticleToClusterMap &mcParticleToClusterMap) const;
80 
87  pandora::StatusCode MergeCaloHits(const MCParticleToCaloHitListMap &mcParticleToCaloHitListMap,
88  const MCParticleToClusterMap &mcParticleToClusterMap) const;
89 
90  void CreateCluster(const pandora::CaloHitList *const caloHitList) const;
91 
92  //pandora::IntVector m_particleIdList; ///< list of particle ids of MCPFOs to be selected
93  //bool m_shouldUseOnlyECalHits; ///< Whether to only use ecal hits in the clustering algorithm
94  //bool m_shouldUseIsolatedHits; ///< Whether to use isolated hits in the clustering algorithm
95  //bool m_simpleMCParticleCollection; ///< Whether to use simple mc particle collection mechanism, or full mechanism
96  //float m_minWeightFraction; ///< The minimum mc particle calo hit weight for clustering consideration
97  int m_CaloHitMCGetterFailures;
98 };
99 
100 //------------------------------------------------------------------------------------------------------------------------------------------
101 
102 inline pandora::Algorithm *PerfectIsoHitRemovalAlgorithm::Factory::CreateAlgorithm() const
103 {
104  return new PerfectIsoHitRemovalAlgorithm();
105 }
106 
107 }
108 
109 #endif // PERFECTFRAGMENTREMOVALALGORITHM_H
pandora::StatusCode MergeCaloHits(const MCParticleToCaloHitListMap &mcParticleToCaloHitListMap, const MCParticleToClusterMap &mcParticleToClusterMap) const
Create clusters based on information in the mc particle to hit list map.
Definition: PerfectIsoHitRemovalAlgorithm.cc:168
void SimpleMCParticleCaloHitListCollection(const pandora::CaloHit *const pCaloHit, MCParticleToCaloHitListMap &mcParticleToCaloHitListMap)
Simple mc particle collection, using main mc particle associated with each calo hit.
Definition: PerfectIsoHitRemovalAlgorithm.cc:102
PerfectIsoHitRemovalAlgorithm class.
Definition: PerfectIsoHitRemovalAlgorithm.h:21
PerfectIsoHitRemovalAlgorithm()
Default constructor.
Definition: PerfectIsoHitRemovalAlgorithm.cc:20
void AddToCaloHitListMap(const pandora::CaloHit *const pCaloHitToAdd, const pandora::MCParticle *const pMCParticle, MCParticleToCaloHitListMap &mcParticleToCaloHitListMap) const
Full mc particle collection, using map of mc particles to hit weights; fragment calo hits where neces...
Definition: PerfectIsoHitRemovalAlgorithm.cc:134
Factory class for instantiating algorithm.
Definition: PerfectIsoHitRemovalAlgorithm.h:27