APRILContent
Algorithm of Particle Reconstruction for ILC - implementation with PandoraSDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations
TrackRecoveryHelixAlgorithm.h
Go to the documentation of this file.
1 
8 #ifndef APRIL_TRACK_RECOVERY_HELIX_ALGORITHM_H
9 #define APRIL_TRACK_RECOVERY_HELIX_ALGORITHM_H 1
10 
11 #include "Pandora/Algorithm.h"
12 
13 namespace april_content
14 {
15 
19 class TrackRecoveryHelixAlgorithm : public pandora::Algorithm
20 {
21 public:
22  class Factory : public pandora::AlgorithmFactory
23  {
24  public:
25  pandora::Algorithm *CreateAlgorithm() const;
26  };
27 
28 private:
33  {
34  public:
41  AssociationInfo(const pandora::Cluster *const pCluster, const float closestApproach);
42 
48  const pandora::Cluster *GetCluster() const;
49 
55  float GetClosestApproach() const;
56 
62  bool operator< (const AssociationInfo &rhs) const;
63 
64  private:
65  const pandora::Cluster *m_pCluster;
67  };
68 
69  typedef std::set<AssociationInfo> AssociationInfoSet;
70  typedef std::map<const pandora::Track *, AssociationInfoSet> TrackAssociationInfoMap;
71 
72  pandora::StatusCode Run();
73  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
74 
80  pandora::StatusCode GetTrackAssociationInfoMap(TrackAssociationInfoMap &trackAssociationInfoMap) const;
81 
87  pandora::StatusCode MakeTrackClusterAssociations(TrackAssociationInfoMap &trackAssociationInfoMap) const;
88 
91  unsigned int m_maxLayersCrossed;
92 
93  unsigned int m_maxSearchLayer;
96 
97  unsigned int m_helixComparisonNLayers;
99 
103 };
104 
105 //------------------------------------------------------------------------------------------------------------------------------------------
106 
107 inline TrackRecoveryHelixAlgorithm::AssociationInfo::AssociationInfo(const pandora::Cluster *const pCluster, const float closestApproach) :
108  m_pCluster(pCluster),
109  m_closestApproach(closestApproach)
110 {
111 }
112 
113 //------------------------------------------------------------------------------------------------------------------------------------------
114 
115 inline const pandora::Cluster *TrackRecoveryHelixAlgorithm::AssociationInfo::GetCluster() const
116 {
117  return m_pCluster;
118 }
119 
120 //------------------------------------------------------------------------------------------------------------------------------------------
121 
123 {
124  return m_closestApproach;
125 }
126 
127 inline pandora::Algorithm *TrackRecoveryHelixAlgorithm::Factory::CreateAlgorithm() const
128 {
129  return new TrackRecoveryHelixAlgorithm();
130 }
131 
132 }
133 
134 #endif
const pandora::Cluster * m_pCluster
The cluster to which an association would be made.
Definition: TrackRecoveryHelixAlgorithm.h:65
float m_maxTrackClusterDistance
Max track-cluster separation to allow association.
Definition: TrackRecoveryHelixAlgorithm.h:100
Definition: TrackRecoveryHelixAlgorithm.h:22
TrackRecoveryHelixAlgorithm class.
Definition: TrackRecoveryHelixAlgorithm.h:19
const pandora::Cluster * GetCluster() const
Get the address of the cluster to which association could be made.
Definition: TrackRecoveryHelixAlgorithm.h:115
float m_maxClosestHelixClusterDistance
Max helix-cluster closest approach to allow association.
Definition: TrackRecoveryHelixAlgorithm.h:101
bool operator<(const AssociationInfo &rhs) const
Operator&lt; to order by address of associated cluster.
Definition: TrackRecoveryHelixAlgorithm.cc:197
float m_closestApproach
The distance of closest approach.
Definition: TrackRecoveryHelixAlgorithm.h:66
AssociationInfo class.
Definition: TrackRecoveryHelixAlgorithm.h:32
unsigned int m_helixComparisonNLayers
Number of cluster layers used in cluster-helix comparison.
Definition: TrackRecoveryHelixAlgorithm.h:97
float m_maxAbsoluteTrackClusterChi
Max absolute track-cluster consistency chi value to allow association.
Definition: TrackRecoveryHelixAlgorithm.h:90
AssociationInfo(const pandora::Cluster *const pCluster, const float closestApproach)
Constructor.
Definition: TrackRecoveryHelixAlgorithm.h:107
float m_maxMeanHelixClusterDistance
Max helix-cluster mean approach to allow association.
Definition: TrackRecoveryHelixAlgorithm.h:102
float GetClosestApproach() const
Get the distance of closest approach between the cluster and the track under consideration.
Definition: TrackRecoveryHelixAlgorithm.h:122
float m_maxTrackClusterDeltaZ
Max z separation between track calorimeter projection and cluster to allow association.
Definition: TrackRecoveryHelixAlgorithm.h:89
float m_parallelDistanceCut
Max allowed projection of track-hit separation along track direction.
Definition: TrackRecoveryHelixAlgorithm.h:94
pandora::StatusCode GetTrackAssociationInfoMap(TrackAssociationInfoMap &trackAssociationInfoMap) const
Get a map specifying cluster association information for every possible matching cluster.
Definition: TrackRecoveryHelixAlgorithm.cc:32
unsigned int m_maxSearchLayer
Max pseudo layer to examine when calculating track-cluster distance.
Definition: TrackRecoveryHelixAlgorithm.h:93
unsigned int m_maxLayersCrossed
Max number of layers crossed by track helix between calorimeter projection and cluster.
Definition: TrackRecoveryHelixAlgorithm.h:91
float m_minTrackClusterCosAngle
Min cos(angle) between track and cluster initial direction.
Definition: TrackRecoveryHelixAlgorithm.h:95
unsigned int m_helixComparisonMaxOccupiedLayers
Max number of occupied cluster layers used in cluster-helix comparison.
Definition: TrackRecoveryHelixAlgorithm.h:98
pandora::StatusCode MakeTrackClusterAssociations(TrackAssociationInfoMap &trackAssociationInfoMap) const
Use information in the track association info map to create track to cluster associations.
Definition: TrackRecoveryHelixAlgorithm.cc:127