APRILContent
Algorithm of Particle Reconstruction for ILC - implementation with PandoraSDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations
NearbyHitRecoveryAlgorithm.h
Go to the documentation of this file.
1 
8 #ifndef NEARBY_HIT_RECOVERY_ALGORITHM_H
9 #define NEARBY_HIT_RECOVERY_ALGORITHM_H 1
10 
11 #include "Pandora/Algorithm.h"
12 
13 #include "TMVA/Reader.h"
14 #include "TMVA/MethodCuts.h"
15 
16 namespace april_content
17 {
18 typedef std::map<const pandora::MCParticle* const, pandora::CaloHitList> MCPCaloHitListMap;
19 typedef std::map<const pandora::MCParticle* const, pandora::ClusterList> MCPClusterListMap;
20 typedef std::map<const pandora::Cluster* const, pandora::CaloHitList> ClusterCaloHitListMap;
21 
23 {
24  // mean density
25  // surrouding energy
26  // COG
27  ClusterParamatersPlus(const pandora::Cluster* pCluster, float density, float energy)
28  :cluster(pCluster), meanDensity(density), surroudingEnergy(energy)
29  {
30  }
31 
32  const pandora::Cluster* cluster;
33  float meanDensity;
34  float surroudingEnergy;
35 };
36 
40 class NearbyHitRecoveryAlgorithm : public pandora::Algorithm
41 {
42 public:
46  class Factory : public pandora::AlgorithmFactory
47  {
48  public:
49  pandora::Algorithm *CreateAlgorithm() const;
50  };
51 
52 private:
54  pandora::StatusCode Initialize();
55  pandora::StatusCode Run();
56 
57  //
58  pandora::StatusCode GetNearbyClustersByDistance(const pandora::CaloHit* pCaloHit, pandora::ClusterList& clusterList);
59 
60  // mva
61  pandora::StatusCode MakeSamples();
62  pandora::StatusCode MVAMergeHitToCluster(ClusterCaloHitListMap& clusterCaloHitListMap);
63  float DeterminMergingByMVA(const pandora::Cluster* cluster, const pandora::CaloHit* caloHit);
64 
65  // cut based
66  pandora::StatusCode MakeClusterHitsAssociation(ClusterCaloHitListMap& clusterCaloHitListMap);
67  pandora::StatusCode AddHitToCluster(ClusterCaloHitListMap& clusterCaloHitListMap);
68 
69  pandora::StatusCode ClusteringByTool(pandora::AlgorithmTool *pAlgorithmTool);
70 
71  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
72 
73  //
74  unsigned int m_nNeighborHits;
75 
76  float m_maxHitsDistance;
77 
78  pandora::AlgorithmTool *m_pAlgorithmTool;
79 
80  // mva reader
81  static TMVA::Reader* m_reader;
82 
83  float m_clusterEMEnergy;
84  float m_clusterHadEnergy;
85  float m_hitEMEnergy;
86  float m_hitHadEnergy;
87  float m_hitLayer;
88  float m_nhits;
89  float m_centroidDistance;
90  float m_closestDistance;
91  float m_meanDensity;
92  float m_surroundingEnergy;
93 
94 };
95 
96 inline pandora::Algorithm *NearbyHitRecoveryAlgorithm::Factory::CreateAlgorithm() const
97 {
98  return new NearbyHitRecoveryAlgorithm();
99 }
100 
101 } // namespace APRIL_content
102 
103 #endif
NearbyHitRecoveryAlgorithm class.
Definition: NearbyHitRecoveryAlgorithm.h:40
Definition: NearbyHitRecoveryAlgorithm.h:22
Factory class for instantiating algorithm.
Definition: NearbyHitRecoveryAlgorithm.h:46