APRILContent
Algorithm of Particle Reconstruction for ILC - implementation with PandoraSDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations
IsoHitRemovalAlgorithm.h
Go to the documentation of this file.
1 
10 #ifndef ISOHITREMOVALALGORITHM_H
11 #define ISOHITREMOVALALGORITHM_H 1
12 
13 #include "Pandora/Algorithm.h"
15 
18 typedef map<const pandora::CaloHit*, const pandora::Cluster*> HitsToClustersMap;
19 
20 namespace april_content
21 {
22 
26 class IsoHitRemovalAlgorithm : public pandora::Algorithm
27 {
28 public:
32  class Factory : public pandora::AlgorithmFactory
33  {
34  public:
35  pandora::Algorithm *CreateAlgorithm() const;
36  };
37 
42 
43 
44 private:
45  pandora::StatusCode Run();
46  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
47 
48  typedef std::map<const pandora::MCParticle*, pandora::CaloHitList*> MCParticleToCaloHitListMap;
49  typedef std::map<const pandora::MCParticle*, const pandora::Cluster*> MCParticleToClusterMap;
50 
57  void SimpleMCParticleCaloHitListCollection(const pandora::CaloHit* const pCaloHit,
58  MCParticleToCaloHitListMap &mcParticleToCaloHitListMap);
59 
60  void SimpleMCParticleClusterCollection(const pandora::Cluster* const pCluster, MCParticleToClusterMap &mcParticleToClusterMap);
61 
68  //void FullMCParticleCollection(const pandora::CaloHit *const pCaloHit, MCParticleToHitListMap &mcParticleToHitListMap) const;
69 
78  void AddToCaloHitListMap(const pandora::CaloHit* const pCaloHitToAdd,
79  const pandora::MCParticle *const pMCParticle, MCParticleToCaloHitListMap &mcParticleToCaloHitListMap) const;
80 
81  void AddToClusterMap(const pandora::Cluster* const pClusterToAdd,
82  const pandora::MCParticle *const pMCParticle, MCParticleToClusterMap &mcParticleToClusterMap) const;
83 
91  void CreateCluster(const pandora::CaloHitList *const caloHitList) const;
92 
93  int GetMCParticle(const pandora::Cluster* pCluster) const;
94 
95  pandora::StatusCode Test();
96  pandora::StatusCode GetIsoHits(pandora::CaloHitList& caloHitList, MCParticleToCaloHitListMap& mcParticleToCaloHitListMap);
97  pandora::StatusCode GetClusters(pandora::ClusterList& clusterList, MCParticleToClusterMap& mcParticleToClusterMap);
98 
99  pandora::StatusCode MCMergeCaloHits(const MCParticleToCaloHitListMap &mcParticleToCaloHitListMap,
100  const MCParticleToClusterMap &mcParticleToClusterMap) const;
101 
102  pandora::StatusCode MergeCaloHits(const pandora::CaloHitList& isoHitList, const pandora::ClusterList& clusterList);
103 
104  pandora::StatusCode BuildKDTree(HitKDTree& hits_kdtree);
105 
106  pandora::StatusCode SearchNearbyCaloHits(const pandora::CaloHit* pCaloHit,
107  std::vector<const pandora::CaloHit*>& nearbyHits, float wideX, float wideY, float wideZ, int layers);
108 
109  pandora::StatusCode MeanShiftClustering(pandora::CaloHitList& isoHitList, std::vector<pandora::CaloHitList>& clusterHitsCollection);
110 
111 private:
112  float m_kernelBandwidth;
113  float m_clusterEpsilon;
114 };
115 
116 //------------------------------------------------------------------------------------------------------------------------------------------
117 
118 inline pandora::Algorithm *IsoHitRemovalAlgorithm::Factory::CreateAlgorithm() const
119 {
120  return new IsoHitRemovalAlgorithm();
121 }
122 
123 }
124 
125 #endif // ISOHITREMOVALALGORITHM_H
Header file for the kd tree linker algo template class.
void CreateCluster(const pandora::CaloHitList *const caloHitList) const
Create clusters based on information in the mc particle to hit list map.
Definition: IsoHitRemovalAlgorithm.cc:487
Class that implements the KDTree partition of 2D space and a closest point search algorithm...
Definition: TrackClusterAssociationAlgorithm.h:18
Factory class for instantiating algorithm.
Definition: IsoHitRemovalAlgorithm.h:32
Data stored in each KDTree node. The dim1/dim2 fields are usually the duplication of some PFRecHit va...
Definition: TrackClusterAssociationAlgorithm.h:19
IsoHitRemovalAlgorithm class.
Definition: IsoHitRemovalAlgorithm.h:26
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: IsoHitRemovalAlgorithm.cc:364
void SimpleMCParticleCaloHitListCollection(const pandora::CaloHit *const pCaloHit, MCParticleToCaloHitListMap &mcParticleToCaloHitListMap)
Simple mc particle collection, using main mc particle associated with each calo hit.
Definition: IsoHitRemovalAlgorithm.cc:332
IsoHitRemovalAlgorithm()
Default constructor.
Definition: IsoHitRemovalAlgorithm.cc:22