10 #ifndef ISOHITREMOVALALGORITHM_H
11 #define ISOHITREMOVALALGORITHM_H 1
13 #include "Pandora/Algorithm.h"
18 typedef map<const pandora::CaloHit*, const pandora::Cluster*> HitsToClustersMap;
20 namespace april_content
32 class Factory :
public pandora::AlgorithmFactory
35 pandora::Algorithm *CreateAlgorithm()
const;
45 pandora::StatusCode Run();
46 pandora::StatusCode ReadSettings(
const pandora::TiXmlHandle xmlHandle);
48 typedef std::map<const pandora::MCParticle*, pandora::CaloHitList*> MCParticleToCaloHitListMap;
49 typedef std::map<const pandora::MCParticle*, const pandora::Cluster*> MCParticleToClusterMap;
58 MCParticleToCaloHitListMap &mcParticleToCaloHitListMap);
60 void SimpleMCParticleClusterCollection(
const pandora::Cluster*
const pCluster, MCParticleToClusterMap &mcParticleToClusterMap);
79 const pandora::MCParticle *
const pMCParticle, MCParticleToCaloHitListMap &mcParticleToCaloHitListMap)
const;
81 void AddToClusterMap(
const pandora::Cluster*
const pClusterToAdd,
82 const pandora::MCParticle *
const pMCParticle, MCParticleToClusterMap &mcParticleToClusterMap)
const;
91 void CreateCluster(
const pandora::CaloHitList *
const caloHitList)
const;
93 int GetMCParticle(
const pandora::Cluster* pCluster)
const;
95 pandora::StatusCode Test();
96 pandora::StatusCode GetIsoHits(pandora::CaloHitList& caloHitList, MCParticleToCaloHitListMap& mcParticleToCaloHitListMap);
97 pandora::StatusCode GetClusters(pandora::ClusterList& clusterList, MCParticleToClusterMap& mcParticleToClusterMap);
99 pandora::StatusCode MCMergeCaloHits(
const MCParticleToCaloHitListMap &mcParticleToCaloHitListMap,
100 const MCParticleToClusterMap &mcParticleToClusterMap)
const;
102 pandora::StatusCode MergeCaloHits(
const pandora::CaloHitList& isoHitList,
const pandora::ClusterList& clusterList);
104 pandora::StatusCode BuildKDTree(
HitKDTree& hits_kdtree);
106 pandora::StatusCode SearchNearbyCaloHits(
const pandora::CaloHit* pCaloHit,
107 std::vector<const pandora::CaloHit*>& nearbyHits,
float wideX,
float wideY,
float wideZ,
int layers);
109 pandora::StatusCode MeanShiftClustering(pandora::CaloHitList& isoHitList, std::vector<pandora::CaloHitList>& clusterHitsCollection);
112 float m_kernelBandwidth;
113 float m_clusterEpsilon;
118 inline pandora::Algorithm *IsoHitRemovalAlgorithm::Factory::CreateAlgorithm()
const
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