10 #ifndef PERFECTCLUSTERINGALGORITHM_H
11 #define PERFECTCLUSTERINGALGORITHM_H 1
13 #include "Pandora/Algorithm.h"
15 namespace april_content
27 class Factory :
public pandora::AlgorithmFactory
30 pandora::Algorithm *CreateAlgorithm()
const;
39 virtual bool SelectMCParticlesForClustering(
const pandora::MCParticle *
const pMCParticle)
const;
42 pandora::StatusCode Run();
43 pandora::StatusCode ReadSettings(
const pandora::TiXmlHandle xmlHandle);
45 typedef std::map<const pandora::MCParticle*, pandora::CaloHitList*> MCParticleToHitListMap;
61 void FullMCParticleCollection(
const pandora::CaloHit *
const pCaloHit, MCParticleToHitListMap &mcParticleToHitListMap)
const;
70 void AddToHitListMap(
const pandora::CaloHit *
const pCaloHitToAdd,
const pandora::MCParticle *
const pMCParticle, MCParticleToHitListMap &mcParticleToHitListMap)
const;
77 void CreateClusters(
const MCParticleToHitListMap &mcParticleToHitListMap)
const;
88 inline pandora::Algorithm *PerfectClusteringAlgorithm::Factory::CreateAlgorithm()
const
95 #endif // PERFECTCLUSTERINGALGORITHM_H
void FullMCParticleCollection(const pandora::CaloHit *const pCaloHit, MCParticleToHitListMap &mcParticleToHitListMap) const
Full mc particle collection, using map of mc particles to hit weights; fragment calo hits where neces...
Definition: PerfectClusteringAlgorithm.cc:103
void AddToHitListMap(const pandora::CaloHit *const pCaloHitToAdd, const pandora::MCParticle *const pMCParticle, MCParticleToHitListMap &mcParticleToHitListMap) const
Add a calo hit to the mc particle to hit list map.
Definition: PerfectClusteringAlgorithm.cc:150
void CreateClusters(const MCParticleToHitListMap &mcParticleToHitListMap) const
Create clusters based on information in the mc particle to hit list map.
Definition: PerfectClusteringAlgorithm.cc:169
float m_minWeightFraction
The minimum mc particle calo hit weight for clustering consideration.
Definition: PerfectClusteringAlgorithm.h:83
PerfectClusteringAlgorithm class.
Definition: PerfectClusteringAlgorithm.h:21
bool m_shouldUseOnlyECalHits
Whether to only use ecal hits in the clustering algorithm.
Definition: PerfectClusteringAlgorithm.h:80
bool m_shouldUseIsolatedHits
Whether to use isolated hits in the clustering algorithm.
Definition: PerfectClusteringAlgorithm.h:81
void SimpleMCParticleCollection(const pandora::CaloHit *const pCaloHit, MCParticleToHitListMap &mcParticleToHitListMap) const
Simple mc particle collection, using main mc particle associated with each calo hit.
Definition: PerfectClusteringAlgorithm.cc:91
pandora::IntVector m_particleIdList
list of particle ids of MCPFOs to be selected
Definition: PerfectClusteringAlgorithm.h:79
PerfectClusteringAlgorithm()
Default constructor.
Definition: PerfectClusteringAlgorithm.cc:20
bool m_simpleMCParticleCollection
Whether to use simple mc particle collection mechanism, or full mechanism.
Definition: PerfectClusteringAlgorithm.h:82
Factory class for instantiating algorithm.
Definition: PerfectClusteringAlgorithm.h:27