ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHTruthTrackSeeding.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PHTruthTrackSeeding.h
1 
7 #ifndef TRACKRECO_PHTRUTHTRACKSEEDING_H
8 #define TRACKRECO_PHTRUTHTRACKSEEDING_H
9 
10 #include "PHTrackSeeding.h"
11 #include <trackbase/TrkrDefs.h>
12 #include <string> // for string
13 #include <vector>
14 
15 // forward declarations
16 class PHCompositeNode;
18 class PHG4HitContainer;
19 class TrkrHitTruthAssoc;
21 class SvtxClusterEval;
22 
23 //class SvtxHitMap;
24 //class PHG4CellContainer;
25 
30 
32 {
33  public:
34  PHTruthTrackSeeding(const std::string& name = "PHTruthTrackSeeding");
35 
36  unsigned int get_min_clusters_per_track() const
37  {
39  }
40 
41  void set_min_clusters_per_track(unsigned int minClustersPerTrack)
42  {
43  _min_clusters_per_track = minClustersPerTrack;
44  }
45 
46  void set_min_layer(unsigned int minLayer)
47  {
48  _min_layer = minLayer;
49  }
50 
51  void set_max_layer(unsigned int maxLayer)
52  {
53  _max_layer = maxLayer;
54  }
55 
57  double get_min_momentum() const
58  {
59  return _min_momentum;
60  }
61 
63  void set_min_momentum(double m)
64  {
65  _min_momentum = m;
66  }
69  protected:
70  int Setup(PHCompositeNode* topNode) override;
71 
72  int Process(PHCompositeNode* topNode) override;
73 
74  int End() override;
75 
76  private:
78  int GetNodes(PHCompositeNode* topNode);
79 
80  void circleFitSeed(std::vector<TrkrDefs::cluskey> clusters,
81  double& x, double& y, double&z,
82  double& px, double& py, double& pz, int charge);
83 void circleFitByTaubin(std::vector<TrkrDefs::cluskey>& clusters,
84  double& R, double& X0, double& Y0);
85  void findRoot(const double& R, const double& X0, const double& Y0,
86  double& x, double& y);
87  void lineFit(std::vector<TrkrDefs::cluskey>& clusters,
88  double& A, double& B);
95 
98 
99  unsigned int _min_clusters_per_track = 3;
100  unsigned int _min_layer = 0;
101  unsigned int _max_layer = 60;
102 
105  bool m_helicalTrackFit = false;
106 
108  double _min_momentum = 50e-3;
109 };
110 
111 #endif